在執(zhí)行某個命令的時候,有時需要依賴于前一個命令是否執(zhí)行成功。例如,假設(shè)你希望將一個目錄中的文件全部拷貝到另外一個目錄中后,然后刪除源目錄中的全部文件。在刪除之前,你希望能夠確信拷貝成功,否則就有可能丟失所有的文件。
如果希望在成功地執(zhí)行一個命令之后再執(zhí)行另一個命令,或者在一個命令失敗后再執(zhí)行另一個命令,&&和||可以完成這樣的功能。相應(yīng)的命令可以是系統(tǒng)命令或shell腳本。shell還提供了在當前shell或子shell中執(zhí)行一組命令的方法,即使用()和{ }。
1.使用&&
使用& &的一般形式為:
命令1 && 命令2
這種命令執(zhí)行方式相當?shù)刂苯印?amp;&左邊的命令(命令1)返回真(即返回0,成功被執(zhí)行)后,&&右邊的命令(命令2)才能夠被執(zhí)行;換句話說, “如果這個命令執(zhí)行成功 & &那么執(zhí)
行這個命令”。
這里有一個使用& &的簡單例子:
$ cp file1 file2 && echo "Success!"
Success!
2.使用||
使用||的一般形式為:
命令1 || 命令2| |的作用有一些不同。如果 ||左邊的命令(命令1)未執(zhí)行成功,那么就執(zhí)行 ||右邊的命令(命令2);或者換句話說,“如果這個命令執(zhí)行失敗了||那么就執(zhí)行這個命令”。
這里有一個使用||的簡單例子:
$ cp file1 file2 || echo "Failed!"
cp: file1 : No such file or directory
Failed!
如果希望在成功地執(zhí)行一個命令之后再執(zhí)行另一個命令,或者在一個命令失敗后再執(zhí)行另一個命令,&&和||可以完成這樣的功能。相應(yīng)的命令可以是系統(tǒng)命令或shell腳本。shell還提供了在當前shell或子shell中執(zhí)行一組命令的方法,即使用()和{ }。
1.使用&&
使用& &的一般形式為:
命令1 && 命令2
這種命令執(zhí)行方式相當?shù)刂苯印?amp;&左邊的命令(命令1)返回真(即返回0,成功被執(zhí)行)后,&&右邊的命令(命令2)才能夠被執(zhí)行;換句話說, “如果這個命令執(zhí)行成功 & &那么執(zhí)
行這個命令”。
這里有一個使用& &的簡單例子:
$ cp file1 file2 && echo "Success!"
Success!
2.使用||
使用||的一般形式為:
命令1 || 命令2| |的作用有一些不同。如果 ||左邊的命令(命令1)未執(zhí)行成功,那么就執(zhí)行 ||右邊的命令(命令2);或者換句話說,“如果這個命令執(zhí)行失敗了||那么就執(zhí)行這個命令”。
這里有一個使用||的簡單例子:
$ cp file1 file2 || echo "Failed!"
cp: file1 : No such file or directory
Failed!