Archiv verlassen und diese Seite im Standarddesign anzeigen : Bash - Prüfen ob Befehl erfolgreich war
kaptain iglo
12-11-2008, 12:45
Hi, ich versuche mich gerade an meinem ersten Bashscript.
Ich möchte gerne einen Befehl ausführen.
( /bin/mt -f /devnst0 rewind)
Jetzt soll mein Script eine Erfolgsmeldung ausgeben.
Was ich gefunden habe ist die $?.
Hier wird eine Meldung über Exitstatus gemacht.
Wenn ich jetzt
if [$? = 0]; then
echo ....
mache bekomme ich eine Fehlermeldung.
Was ist hier falsch????
Was für eine Fehlermeldung, poste doch die auch. Grundsätzlich sollte es so gehen. Das fi am Schluss des if-Blocks hast du?
if [ $? = 0 ]; then
echo "Success"
fi läuft bei mir ohne Probleme.
PS: eigentlich solltest du für Integer-Vergleiche mit test -eq verwenden. = vergleicht Strings, funktioniert aber hier auch. Siehe auch man test.
HTH jeebee
meinereinerseiner
13-11-2008, 07:40
if [$? = 0]; then
echo ....
da fehlen nur leerzeichen:
if [ $? = 0 ]; then
echo 123
fi
oder aber es geht auch mit:
/bin/bla && echo "alles ok"
tom
Oh, hab ich gar nicht gesehen :o
Darum: für Code gibts die [code]-Tags
kaptain iglo
13-11-2008, 13:31
Yo, die Leerzeichen waren das Problem.
Warum ist das so?
if [ $? = 0 ]; then geht
if[ $? = 0]; then geht nicht.
Viele Dank und viele Grüße
Ahoi
ContainerDriver
13-11-2008, 15:40
[ ist ein Programm (könnte z.B. ein Link auf test sein) oder ein Shell-Built-In, bei deinem Aufruf von [ sind $?, =, 0 und ] die Parameter. Wenn du die 0 direkt an den Parameter ] schreibst, dann wird das als nur ein Parameter gewertet und dem Programm-/Funktionsaufruf fehlt ein Parameter und zusätzlich übergibst du [ auch noch einen ungültigen Parameter.
Bei if[ versteht der Shell-Interpreter vermutlich gar nicht, was du von ihm willst, bzw. könnte er if[ als Programmaufruf interpretieren. Wenn du "if " schreibst, dann erkennt der Interpreter das als Sprachkonstrukt.
kaptain iglo
15-11-2008, 22:01
Ok. Danke für die Info.
Ahoi!
Du kannst auch das schreiben:
if /bin/mt -f /devnst0 rewind; then
...
fi
Powered by vBulletin® Version 4.2.5 Copyright ©2025 Adduco Digital e.K. und vBulletin Solutions, Inc. Alle Rechte vorbehalten.