Linux 連續執行多條命令的方法


轉:https://blog.csdn.net/freedom2028/article/details/7104131

多個命令可以放在一行上,其執行情況得依賴於用在命令之間的分隔符。

如果每個命令被一個分號 (;) 所分隔,那么命令會連續的執行下去,如:

引用
beyes@linux-beyes:/proc> printf "%s/n" "This is executed" ; printf "%s/n" "And so is this"
This is executed
And so is this



如果每個命令被 && 號分隔,那么這些命令會一直執行下去,如果中間有錯誤的命令存在,則不再執行后面的命令,沒錯則執行到完為止:

引用
beyes@linux-beyes:/proc> date && printf "%s/n" "The date command was successful"
2009年 08月 28日 星期五 18:28:16 CST
The date command was successful


所有命令成功執行完畢。

引用

beyes@linux-beyes:/proc> date && llk && printf "%s/n" "The date command was successful"
2009年 08月 28日 星期五 18:28:52 CST
bash: llk: command not found


后面的成功執行提示語句不會被輸出,因為 llk 命令無法識別。

如果每個命令被雙豎線(||)分隔符分隔,如果命令遇到可以成功執行的命令,那么命令停止執行,即使后面還有正確的命令則后面的所有命令都將得不到執行。假如命令一開始就執行失敗,那么就會執行 || 后的下一個命令,直到遇到有可以成功執行的命令為止,假如所有的都失敗,則所有這些失敗的命令都會被嘗試執行一次:

引用
beyes@linux-beyes:/proc> date || ls / || date 'duck!' || uname -a
2009年 08月 28日 星期五 18:33:18 CST


第一個命令成功執行!后面的所有命令不再得到執行。

引用
beyes@linux-beyes:/proc> date 'duck!' || dakkk || uname -a
date: 無效的日期 “duck!”
bash: dakkk: command not found
Linux linux-beyes 2.6.27.29-0.1-pae #1 SMP 2009-08-15 17:53:59 +0200 i686 i686 i386 GNU/Linux


前面的兩個命令都失敗了,直到找到最后一個可以成功執行的命令為止。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM