#!/bin/sh
function checkExit(){
if test "$?" != "0"; then
echo Command $1 exited with abnormal status
exit 1;
else echo $?
fi
}
function echoThenRun () { # echo and then run the command
echo $1
$1
ret=$?
echo $ret
return $ret
}
file=test_file
echo > $file
echoThenRun "test -f $file"
checkExit $file
echo "all right!"
Die Ausgabe der Ausführung des Skripts:
$ ~/Downloads/test.sh
test -f test_file
0
1 # why 1 here??
all right!
bash
shell
exit
error-handling
sympathisch
quelle
quelle
if
Aussage ist, wonach ich gesucht habeset -x
existiert !!! Das ist die nützlichste Funktion aller Zeiten. Vielen Dank!Sieht für mich so aus, als würde der Befehl
test "$?" != "0"
$ setzen? zu 1. Der Wert $? wird in den Argumenten zu verwendettest
.test
setzt $? auf einen Wert ungleich Null, da "0" lexikalisch gleich "0" ist. Das "! =" Macht dietest
Rückgabe ungleich Null.quelle