Linux Shell編程中的幾個特殊符號命令 & 、&& 、 ||

https://blog.csdn.net/hack8/article/details/39672145

 

Linux Shell編程中的幾個特殊符號命令 & 、&& 、 ||

 

  1. & 放在啓動參數後面表示設置此進程爲後臺進程

 

       默認狀況下,進程是前臺進程,這時就把Shell給佔據了,咱們沒法進行其餘操做,對於那些沒有交互的進程,不少時候,咱們但願將其在後臺啓動,能夠在啓動參數的時候加一個’&’實現這個目的。html

   2.  &&和||shell

shell 在執行某個命令的時候,會返回一個返回值,該返回值保存在 shell 變量 $? 中。當 $? == 0 時,表示執行成功;當 $? == 1 時(我認爲是非0的數,返回值在0-255間),表示執行失敗。編程

有時候,下一條命令依賴前一條命令是否執行成功。如:在成功地執行一條命令以後再執行另外一條命令,或者在一條命令執行失敗後再執行另外一條命令等。shell 提供了 && 和 || 來實現命令執行控制的功能,shell 將根據 && 或 || 前面命令的返回值來控制其後面命令的執行。spa

語法格式以下:.net

command1 && command2 [&& command3 ...] htm

1 命令之間使用 && 鏈接,實現
邏輯與的功能。 blog

2 只有在 && 左邊的命令返回真(命令返回值 $? == 0),&& 右邊的命令纔會被執行。 進程

3 只要有一個命令返回假(命令返回值 $? == 1),後面的命令就不會被執行。 路由

邏輯或的功能get

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
注意 &>要連起來寫。
相關文章
相關標籤/搜索