shell技巧分享(八)

這是一個系列文章,主要分享shell(部分功能僅適用于bash)的使用建議和技巧,每次分享3點,希望你能有所收獲。

1 &&的作用

$ touch test.log
$ cat test.log && echo ok
ok
$ rm test.log
$ cat test.log && echo ok
cat: test.log: No such file or directory

如果命令之間使用&&分隔,相當于邏輯“與”,此時只有前一個命令執(zhí)行成功,后一個命令才會執(zhí)行,如果前一個命令執(zhí)行失敗,后一個命令就不會執(zhí)行。由示例中可以看到,當test.log文件存在時,會正常打印ok,但是刪除test.log文件后,cat test.log執(zhí)行失敗,不會執(zhí)行第二條命令,所以不打印ok。

2 ||的作用

$ touch test.log
$ cat test.log || echo ok
$ rm test.log
$ cat test.log || echo ok
cat: test.log: No such file or directory
ok

如果命令之間使用||分隔,相當于邏輯“或”,此時只有前一個命令執(zhí)行失敗,后一個命令才會執(zhí)行,如果前一個命令執(zhí)行成功,后一個命令就不會執(zhí)行。由示例中可以看到,當test.log文件存在時,不會打印ok,但是刪除test.log文件后,cat test.log執(zhí)行失敗,此時會執(zhí)行第二條命令,所以打印ok,行為和&&相反。

3 分號的作用

$ touch test.log
$ cat test.log;echo ok
ok
$ rm test.log
$ cat test.log;echo ok
cat: test.log: No such file or directory
ok

如果命令之間使用分號分隔,那么命令會依次執(zhí)行,不管分號前的命令是否執(zhí)行成功,后續(xù)命令都會執(zhí)行。由示例中可以看到,就算將test.log文件刪除,也會正常打印ok。

綜上,三種符號的作用總結(jié)如下:

  • cmdA && cmdB:只有cmdA執(zhí)行成功,才會執(zhí)行cmdB
  • cmdA || cmdB:只有cmdA執(zhí)行失敗,才會執(zhí)行cmdB
  • cmdA ; cmdB:不管cmdA是否執(zhí)行成功,都會執(zhí)行cmdB
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關(guān)閱讀更多精彩內(nèi)容

  • Spring Cloud為開發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見模式的工具(例如配置管理,服務發(fā)現(xiàn),斷路器,智...
    卡卡羅2017閱讀 136,544評論 19 139
  • .bat腳本基本命令語法 目錄 批處理的常見命令(未列舉的命令還比較多,請查閱幫助信息) 1、REM 和 :: 2...
    慶慶慶慶慶閱讀 8,531評論 1 19
  • linux資料總章2.1 1.0寫的不好抱歉 但是2.0已經(jīng)改了很多 但是錯誤還是無法避免 以后資料會慢慢更新 大...
    數(shù)據(jù)革命閱讀 13,216評論 2 33
  • 什么是運維 術(shù)語名詞 IDC--(Internet Data Center)互聯(lián)網(wǎng)數(shù)據(jù)中心,主要服務包括整機租用、...
    lyh165閱讀 2,875評論 0 19
  • 【1057快報】 今天早上有市民給忻州人民綜合廣播發(fā)來消息,稱市內(nèi)牧馬路雁門大道南街交通信號燈歪斜,有安全隱患,我...
    圖說忻州閱讀 299評論 0 0

友情鏈接更多精彩內(nèi)容