問題:
需要在成功執行某個命令之後執行乙個命令。比如,你需要進入某個目錄,刪除其中所有的檔案,但是如果
cd命令失敗,你就不去執行刪除的動作(比如許可權不允許,或者你把目錄的名字輸入錯誤)
解決方案:
可以使用
cd命令的返回值
($?)
並結合if
語句進行判斷。
cd mytmp
if (( $? )); then rm * ; fi
討論:很明顯,直接輸入命令的時候,是不需要進行這個判斷的。
cd的所有錯誤資訊都一目了然的時候,你肯定不會去執行
rm操作。但是指令碼就是另外一回事情了,如果你不期望刪除你工作目錄的檔案,那麼檢測就是必須的了。
比如你在某個沒有
mytmp
的目錄執行了指令碼,
cd命令會失敗,有了這個判斷,當前的目錄會保持原樣。如果沒有這個
if判斷,指令碼會直接執行下面的語句,
rm *
會刪除當前目錄所有的檔案。 那麼
$?是如何得到的呢?它是命令的返回值,對
c程式設計師來說,這個值也就是賦給
exit
函式的引數,比如
exit(4)
會返回4.
對於指令碼來說,
0認為是成功,非零認為是失敗。
在編寫指令碼的時候,你會期望你的指令碼返回正確的值,從而,
$?會正確的設定,如果你不這麼做,這個值會保留最後乙個命令的返回值,這應該不是你期望的。
C 在DOS下執行命令並判斷是否執行成功!
using system using system.collections.generic using system.componentmodel using system.data using system.drawing using system.text using system.window...
shell指令碼判斷上乙個命令是否執行成功
shell指令碼中判斷上乙個命令是否執行成功 shell中使用符號 來顯示上一條命令執行的返回值,如果為0則代表執行成功,其他表示失敗。結合if else語句實現判斷上乙個命令是否執行成功。經過驗證,該方法也適用於make命令,並不僅僅限於shell 命令。示例如下 if ne 0 then ech...
判斷PHP的exec函式是否執行成功
做乙個 發布的系統,需要用到php的exec函式來執行linux下的命令和git,svn命令,如何判斷php的exec函式是否執行成功呢?寫個php檔案來做實驗 exec函式第乙個引數是執行的命令,第二個引數是執行的結果,第三個引數是執行的狀態。php 1 2 3 4 5 6 7 8 9 exec ...