1. 程式人生 > 其它 >&、&&、||、&>、2>&1是什麼意思?

&、&&、||、&>、2>&1是什麼意思?

1、什麼是&

& 放在啟動引數後面表示設定此程序為後臺程序。

2、什麼是&& 和||

shell 在執行某個命令的時候,會返回一個返回值,該返回值儲存在 shell 變數 $? 中。當 $? == 0 時,表示執行成功;當 $? == 1 時,表示執行失敗。

shell 提供了 && 和 || 來實現命令執行控制的功能,shell 將根據 && 或 || 前面命令的返回值來控制其後面命令的執行。
語法格式如下:

命令之間使用 && 連線,實現邏輯與的功能。

command1 && command2

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

命令之間使用 || 連線,實現邏輯或的功能。

command1 || command2 [|| command3 ...] 

只有在 || 左邊的命令返回假(命令返回值 $? == 1),|| 右邊的命令才會被執行。

3、什麼是&>

舉例,ping命令判斷存活主機
 
    ping -c 4 192.168.2.1 &> /dev/null 
    if [ "$?" == 0 ];then
      echo "192.168.2.1 is UP!"     
    else
      echo "192.168.2.1 is DOWN!"
    fi
注意 &>要連起來寫。

&代表工作放在後臺執行,>表示把資訊匯入某個檔案。

4、什麼是2>&1

ping -c 4 192.168.2.1 > /dev/null 2>&1

2是標準錯誤資訊
1是正常輸出
2>&1意思是:
就是標準錯誤像正常輸出一樣輸出
我們都省略了1
正常應該這麼寫

ping -c 4 192.168.2.1 1> /dev/null 2>&1