Linux Shell程式設計中的幾個特殊符號命令 & 、&& 、 ||
阿新 • • 發佈:2019-02-06
- & 放在啟動引數後面表示設定此程序為後臺程序
預設情況下,程序是前臺程序,這時就把Shell給佔據了,我們無法進行其他操作,對於那些沒有互動的程序,很多時候,我們希望將其在後臺啟動,可以在啟動引數的時候加一個’&’實現這個目的。
2. &&和||
shell
在執行某個命令的時候,會返回一個返回值,該返回值儲存在 shell 變數 $? 中。當 $? == 0 時,表示執行成功;當 $? == 1 時(我認為是非0的數,返回值在0-255間),表示執行失敗。
有時候,下一條命令依賴前一條命令是否執行成功。如:在成功地執行一條命令之後再執行另一條命令,或者在一條命令執行失敗後再執行另一條命令等。shell 提供了 && 和 || 來實現命令執行控制的功能,shell 將根據 && 或 || 前面命令的返回值來控制其後面命令的執行。
語法格式如下:
command1 && command2 [&& command3 ...]
1 命令之間使用 && 連線,實現
邏輯與的功能。
2 只有在 && 左邊的命令返回真(命令返回值 $? == 0),&& 右邊的命令才會被執行。
3 只要有一個命令返回假(命令返回值 $? == 1),後面的命令就不會被執行。
邏輯或的功能
command1 || command2 [|| command3 ...]
1 命令之間使用 || 連線,實現
邏輯或的功能。
2 只有在 || 左邊的命令返回假(命令返回值 $? == 1),|| 右邊的命令才會被執行。這和 c 語言中的邏輯或語法功能相同,即實現短路邏輯或操作。
3 只要有一個命令返回真(命令返回值 $? == 0),後面的命令就不會被執行。 –直到返回真的地方停止執行。
舉例,ping命令判斷存活主機
ping -c 1 -w 1 192.168.2.1 &> /dev/null && result=0 ||result=1 if [ "$result" == 0 ];then echo "192.168.2.1 is UP!" else echo "192.168.2.1 is DOWN!" fi 注意 &>要連起來寫。