?多個命令可以放在一行上,其執(zhí)行情況得依賴于用在命令之間的分隔符斋竞。
如果每個命令被一個分號拧抖;所間隔,那么命令會連續(xù)的執(zhí)行下去识埋,如:
beyes@Linux-beyes:/proc> printf “%s/n” “This is executed” ; printf “%s/n” “And so is this”
This is executed
And so is this
如果每個命令被&&號分隔凡伊,那么這些命令會一直執(zhí)行下去,如果中間有錯誤的命令存在窒舟,則不再執(zhí)行后面的命令系忙,沒錯則執(zhí)行到完為止:
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
所有命令成功執(zhí)行完畢。
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命令無法識別银还。
如果每個命令被雙豎線||分隔符分隔,如果命令遇到可以成功執(zhí)行的命令耕腾,那么命令停止執(zhí)行见剩,即使后面還有正確的命令則后面的所有命令都將得不到執(zhí)行杀糯。假如命令一開始就執(zhí)行失敗扫俺,那么就會執(zhí)行||后的下一個命令,直到遇到有可以成功執(zhí)行的命令為止固翰,假如所有的都失敗狼纬,則所有這些失敗的命令都會被嘗試執(zhí)行一次:
beyes@linux-beyes:/proc> date || ls / || date ‘duck!’ || uname -a
2009年 08月 28日 星期五 18:33:18 CST
第一個命令成功執(zhí)行!后面的所有命令不再得到執(zhí)行骂际。
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
前兩個命令都失敗了疗琉,直到找到最后一個可以成功執(zhí)行的命令為止。