Bash
如何使用美元?並測試檢查功能?
#!/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!"
執行腳本的輸出:
$ ~/Downloads/test.sh test -f test_file 0 1 # why 1 here?? all right!
您正在做的事情有一種更簡單的方法。如果使用
set -x
,腳本將在執行前自動回顯每一行。此外,一旦您執行另一個命令,
$?
將替換為該命令的退出程式碼。如果您要對它做任何事情而不是快速測試和忘記,則必須將其備份到一個變數中。這
[
實際上是一個有自己的退出程式碼的程序。例如:
set -x # make sure the command echos execute some command... result="$?" set +x # undo command echoing if [ "$result" -ne 0 ]; then echo "Your command exited with non-zero status $result" fi