shell技巧分享(八)

作者 : 开心源码 本文共875个字,预计阅读时间需要3分钟 发布时间: 2022-05-12 共190人阅读

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

1 &&的作用

$ touch test.log$ cat test.log && echo okok$ rm test.log$ cat test.log && echo okcat: 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 okcat: test.log: No such file or directoryok

假如命令之间使用||分隔,相当于逻辑“或者”,此时只有前一个命令执行失败,后一个命令才会执行,假如前一个命令执行成功,后一个命令就不会执行。由示例中可以看到,当test.log文件存在时,不会打印ok,但是删除test.log文件后,cat test.log执行失败,此时会执行第二条命令,所以打印ok,行为和&&相反。

3 分号的作用

$ touch test.log$ cat test.log;echo okok$ rm test.log$ cat test.log;echo okcat: test.log: No such file or directoryok

假如命令之间使用分号分隔,那么命令会依次执行,不论分号前的命令能否执行成功,后续命令都会执行。由示例中可以看到,就算将test.log文件删除,也会正常打印ok。

综上,三种符号的作用总结如下:

  • cmdA && cmdB:只有cmdA执行成功,才会执行cmdB
  • cmdA || cmdB:只有cmdA执行失败,才会执行cmdB
  • cmdA ; cmdB:不论cmdA能否执行成功,都会执行cmdB

说明
1. 本站所有资源来源于用户上传和网络,如有侵权请邮件联系站长!
2. 分享目的仅供大家学习和交流,您必须在下载后24小时内删除!
3. 不得使用于非法商业用途,不得违反国家法律。否则后果自负!
4. 本站提供的源码、模板、插件等等其他资源,都不包含技术服务请大家谅解!
5. 如有链接无法下载、失效或广告,请联系管理员处理!
6. 本站资源售价只是摆设,本站源码仅提供给会员学习使用!
7. 如遇到加密压缩包,请使用360解压,如遇到无法解压的请联系管理员
开心源码网 » shell技巧分享(八)

发表回复