next up previous contents
Next: 管線命令 pipe Up: 資料導向與管線處理 Previous: 資料流重導向   Contents

連續命令

  1. 指令間以分號( ; )隔開:連續執行指令。編輯 str.sh 只有一行只指令,輸出變數 str 內容,執行前用 export 將變數 str 導出,所以 str.sh 腳本可以使用 str 變數。
    [dywang@dywmac ~]$ vim str.sh
    [dywang@dywmac ~]$ cat str.sh
    echo $str
    [dywang@dywmac ~]$ export str='abc' ; sh str.sh
    abc
    
  2. 指令間以 && 隔開:前面指令執行結果正確,就接著執行後續的指令,否則就略過;指令間以 || 隔開:前面指令執行結果不正確,就接著執行後續的指令,否則就略過。
    [dywang@dywmac ~]$ ls /etc/dywang-release && cat /etc/dywang-release 
    /etc/dywang-release
    De-Yu Wang Linux 6.4 release (Taiwan)
    [dywang@dywmac ~]$ ls /etc/dywang-release || cat /etc/dywang-release 
    /etc/dywang-release
    
  3. 以 ls 測試 abcd 是否存在?&&|| 連續執行,若存在則顯示其內容,若不存在,則顯示產生空檔案 abcd,再次執行時檔案 abcd 已存在,顯示其內容為空的。
    [dywang@dywmac ~]$ ls abcd && cat abcd || touch abcd
    ls: cannot access abcd: No such file or directory
    [dywang@dywmac ~]$ cat abcd
    [dywang@dywmac ~]$ ls abcd && cat abcd || touch abcd
    abcd
    
  4. 習題:以 ls 測試目錄 /tmp/s9427??? 是否存在,若存在則進入目錄,若不存在,則建立目錄。



2019-06-17