shell技巧分享(八)

作者: songleo | 来源:发表于2018-06-29 23:12 被阅读22次

这是一个系列文章,主要分享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

相关文章

  • shell技巧分享(八)

    这是一个系列文章,主要分享shell(部分功能仅适用于bash)的使用建议和技巧,每次分享3点,希望你能有所收获。...

  • shell技巧分享(一)

    这是一个系列文章,主要分享shell(部分功能仅适用于bash)的使用建议和技巧,每次分享3点,希望你能有所收获。...

  • shell技巧分享(二)

    这是一个系列文章,主要分享shell(部分功能仅适用于bash)的使用建议和技巧,每次分享3点,希望你能有所收获。...

  • shell技巧分享(三)

    这是一个系列文章,主要分享shell(部分功能仅适用于bash)的使用建议和技巧,每次分享3点,希望你能有所收获。...

  • shell技巧分享(七)

    这是一个系列文章,主要分享shell(部分功能仅适用于bash)的使用建议和技巧,每次分享3点,希望你能有所收获。...

  • shell技巧分享(九)

    这是一个系列文章,主要分享shell(部分功能仅适用于bash)的使用建议和技巧,每次分享3点,希望你能有所收获。...

  • shell技巧分享(四)

    这是一个系列文章,主要分享shell(部分功能仅适用于bash)的使用建议和技巧,每次分享3点,希望你能有所收获。...

  • shell技巧分享(六)

    这是一个系列文章,主要分享shell(部分功能仅适用于bash)的使用建议和技巧,每次分享3点,希望你能有所收获。...

  • shell技巧分享(五)

    这是一个系列文章,主要分享shell(部分功能仅适用于bash)的使用建议和技巧,每次分享3点,希望你能有所收获。...

  • Linux Shell常用技巧(八)

    1. Linux的实时监测命令(watch): watch 是一个非常实用的命令,可以帮你实时监测一个命令的运行结...

网友评论

    本文标题:shell技巧分享(八)

    本文链接:https://www.haomeiwen.com/subject/lqpzyftx.html