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

如果命令之間使用&&分隔,相當於邏輯“與”,此時只有前一個命令執行成功,後一個命令纔會執行,如果前一個命令執行失敗,後一個命令就不會執行。由示例中可以看到,當test.log文件存在時,會正常打印ok,但是刪除test.log文件後,cat test.log執行失敗,不會執行第二條命令,所以不打印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

如果命令之間使用||分隔,相當於邏輯“或”,此時只有前一個命令執行失敗,後一個命令纔會執行,如果前一個命令執行成功,後一個命令就不會執行。由示例中可以看到,當test.log文件存在時,不會打印ok,但是刪除test.log文件後,cat test.log執行失敗,此時會執行第二條命令,所以打印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

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

綜上,三種符號的作用總結如下:

  • cmdA && cmdB:只有cmdA執行成功,纔會執行cmdB
  • cmdA || cmdB:只有cmdA執行失敗,纔會執行cmdB
  • cmdA ; cmdB:不管cmdA是否執行成功,都會執行cmdB
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章