您好,登錄后才能下訂單哦!
在用linux命令時候,我們可以一行執行多條命令或者有條件的執行下一條命令,下面我們講解一下linux命令分號&&和&,|和||的用法
“;”分號用法
方式:command1 ; command2
用;號隔開每個命令, 每個命令按照從左到右的順序,順序執行, 彼此之間不關心是否失敗, 所有命令都會執行。
“| ”管道符用法
上一條命令的輸出,作為下一條命令參數
方式:command1 | command2
Linux所提供的管道符“|”將兩個命令隔開,管道符左邊命令的輸出就會作為管道符右邊命令的輸入。連續使用管道意味著第一個命令的輸出會作為 第二個命令的輸入,第二個命令的輸出又會作為第三個命令的輸入,依此類推
利用一個管道
# rpm -qa|grep licq
這條命令使用一個管道符“|”建立了一個管道。管道將rpm -qa命令的輸出(包括系統中所有安裝的RPM包)作為grep命令的輸入,從而列出帶有licq字符的RPM包來。
利用多個管道
# cat /etc/passwd | grep /bin/bash | wc -l
這條命令使用了兩個管道,利用第一個管道將cat命令(顯示passwd文件的內容)的輸出送給grep命令,grep命令找出含有“/bin /bash”的所有行;第二個管道將grep的輸出送給wc命令,wc命令統計出輸入中的行數。這個命令的功能在于找出系統中有多少個用戶使用bash
“&”符號用法
&放在啟動參數后面表示設置此進程為后臺進程
方式:command1 &
默認情況下,進程是前臺進程,這時就把Shell給占據了,我們無法進行其他操作,對于那些沒有交互的進程,很多時候,我們希望將其在后臺啟動,可以在啟動參數的時候加一個'&'實現這個目的。
“&&”符號用法
shell 在執行某個命令的時候,會返回一個返回值,該返回值保存在 shell 變量 $? 中。當 $? == 0 時,表示執行成功;當 $? == 1 時(我認為是非0的數,返回值在0-255間),表示執行失敗。
有時候,下一條命令依賴前一條命令是否執行成功。如:在成功地執行一條命令之后再執行另一條命令,或者在一條命令執行失敗后再執行另一條命令等。shell 提供了 && 和 || 來實現命令執行控制的功能,shell 將根據 && 或 || 前面命令的返回值來控制其后面命令的執行。
語法格式如下:
command1 && command2 [&& command3 ...]
命令之間使用 && 連接,實現邏輯與的功能。
只有在 && 左邊的命令返回真(命令返回值 $? == 0),&& 右邊的命令才會被執行。
只要有一個命令返回假(命令返回值 $? == 1),后面的命令就不會被執行。
“||”符號用法
邏輯或的功能
語法格式如下:
command1 || command2 [|| command3 ...]
命令之間使用 || 連接,實現邏輯或的功能。
只有在 || 左邊的命令返回假(命令返回值 $? == 1),|| 右邊的命令才會被執行。這和 c 語言中的邏輯或語法功能相同,即實現短路邏輯或操作。
只要有一個命令返回真(命令返回值 $? == 0),后面的命令就不會被執行。 –直到返回真的地方停止執行。
舉例,ping命令判斷存活主機
ping -c 1 -w 1 192.168.1.1 &> /dev/null && result=0 ||result=1
if [ "$result" == 0 ];then
echo "192.168.1.1 is UP!"
else
echo "192.168.2.1 is DOWN!"
fi
注意 &>要連起來寫。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。