一、管道運算符
運算符號: 『|』;
用法:command1 | command2
作用: command1 的輸出結果,做爲command2 的輸入結果;
舉例:
grep -r "aaa" log.log | wc -l
10
# 指令解析: 從文件『log.log』中查找包含子串『aaa』的行, 然後統計其行數;
# 第一個指令的結果, 做爲第二個結果的輸入;
# 最終的結果爲統計的行數:
二、&& 運算符
運算符號: 『&&』
用法: command1 && command2 && command3 ... && command n
作用:當command1 執行成功了,則執行command2; 當command2執行成功了, 則執行command3 ...
中間,但凡有一個command執行失敗了, 則指令結束; 後面的command不再執行;
舉例:
cp run.log ../ && rm run.log && echo "success"
success 【成功時,輸出】
cp: cannot stat `run.log': No such file or directory 【失敗時,輸出】
# command1 爲 將當前目標文件,拷貝到上一層目錄;
# command2 爲 刪除當前目錄的文件;
# command3 爲 輸出success;
# 當前前一個指令執行成功,則執行後一個指令; 當其中任何一個指令執行失敗,則操作結束,不再繼續往後走;
三、 || 運算符
運算符: 『||』
用法:command1 || command2 || command3 ... || command n
作用: 挨個執行command, 但凡有一個執行成功,則停止執行;若沒有執行成功,則往後走,執行next指令;
舉例:
ls run.log &>/dev/null && echo "sucess" || echo "fail"
fail
# 運算優先級,從左到右;
# 當本地目錄下存在 run.log , 這執行command2【輸出success】;
# 當本地目錄下沒有存在 run.log, 則不執行command2 ; 該任務執行失敗 【這是 && 的作用】
# 當 前面執行失敗, 則執行 command3 【這是 || 的作用】