1. 程式人生 > 其它 >linux中的分號&&和&,|和||說明與用法

linux中的分號&&和&,|和||說明與用法

轉載自:https://www.jb51.net/article/136261.htm

簡潔版:

";"分號用法
方式:
command1;command2
用;隔開表示為多個命令,命令按照從左到右的順序執行,彼此無關聯,所有的命令都會執行。

"|"管道符號用法
方式:
command1|command2
"|"將兩個命令分開,左邊命令的輸出作為右邊命令的輸入,以此類推
eg: ps -ef | grep 程序名稱
分析: 1. ps -ef
命令拆解:
ps:將某個程序顯示出來
-A  顯示所有程式。
-e  此引數的效果和指定"A"引數相同。
-f  顯示UID,PPIP,C與STIME欄位。
grep命令是查詢
中間的|是管道命令 是指ps命令與grep同時執行
這條命令的意思是顯示有關Apachejetspeed有關的程序

                    UID PID PPID C STIME TTY TIME CMD
                    各相關資訊的意義:

                    UID: 程式被該 UID 所擁有

                    PID :就是這個程式的 ID

                    PPID :則是其上級父程式的ID

                    C: CPU 使用的資源百分比

                    STIME :系統啟動時間

                    TTY: 登入者的終端機位置

                    TIME: 使用掉的 CPU 時間

                    CMD :所下達的指令為何  
"&"符號
   方式: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

注意 &>要連起來寫。