Ich erhalte eine Fehlermeldung ./test.sh: Zeile 13: [: fehlt `] 'in der Datei test.sh Ich habe versucht, Klammern und andere Optionen wie -a zu verwenden oder die Größe der Datei p1 zu überprüfen, aber der Fehler ist immer da und die else-Anweisung wird immer ausgeführt, unabhängig von der angegebenen Eingabe. Ich habe sogar versucht, die; in Zeile 13 aber es hat nicht geholfen.
test.sh
#!/bin/bash
echo "Enter app name"
read y
$y &
top -b -n 1 > topLog.log
#-w checks for the whole word not and sub string from that word
grep -w "$y" topLog.log > p1
#-s option checks if the file p1 is present or not
if [ -s "p1"]; #line 13
then
echo "Successful "
else
echo "Unsuccessful"
fi
rm p1
Ich bin neu im Bash-Scripting. Wenn es also einen dummen Fehler gibt, entschuldigen Sie mich bitte.
Ich habe diesen Fehler beim Versuch, den
&&
Operator in einzelnen Klammern wie zu verwenden[ ... && ... ]
. Ich musste zu wechseln[[ ... && ... ]]
.quelle
Sie vermissen ein Leerzeichen nach
"p1"
:if [ -s "p1" ];
quelle
Fügen Sie vor der schließenden Klammer ein Leerzeichen ein
quelle
Wenn Sie Ihr Skript unter Windows erstellt haben und es auf einem Linux-Computer ausführen möchten und sicher sind, dass Ihr Code keinen Fehler enthält, installieren Sie dos2unix auf einem Linux-Computer und führen Sie es aus
dos2unix yourscript.sh
. Führen Sie dann das Skript aus.quelle