Shell 脚本中 set -ex 命令的作用
2021/12/12 7:18:33
本文主要是介绍Shell 脚本中 set -ex 命令的作用,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
刚刚学会了一个很实用的 shell 命令 set -ex
,在这里分享一下。
稍有常识的人都能看出,这是 set
命令加上了 -e
和 -x
两个参数 (废话么这不是)。那么,我就把这两个参数拆开,分别说一下它在脚本中的用处。
set -e
先说说 set -e
,这个参数的含义是,当命令发生错误的时候,停止脚本的执行。
通常来说,我们会习惯于使用 &&
来实现这样的功能,比如:
1 |
#!/bin/bash echo 1 && rm non-existent-file && echo 2 |
但是,写成一行呢,可读性有点差,分成多行的话,也得注意换行符 \
和 &&
号,我就有过好几次忘了加这俩东西,还是挺麻烦的是吧。
更麻烦的是,&&
连接的命令之间不能写注释,也就是说,下面这个示例是不能用的:
1 5 |
#!/bin/bash echo 1 \ && rm non-existent-file \ # which will fail && echo 2 |
运行之后会是这个德行:
1 5 |
1 rm: non-existent-file: No such file or directory rm: #: No such file or directory rm: which: No such file or directory rm: will: No such file or directory rm: fail: No such file or directory ./test1.sh: line 5: syntax error near unexpected token `&&' ./test1.sh: line 5: ` && echo 2' |
现在,就可以写成下面这样了:
1 5 |
#!/bin/bash set -e echo 1 rm non-existent-file # which will fail echo 2 |
猜猜最后输出里面会不会把 2
打印出来?
set -x
说完了 -e
,继续说说 -x
。-x
参数的作用,是把将要运行的命令用一个 +
标记之后显示出来。
还是拿上面这个脚本举个例子,这次加上 -x
:
1 5 |
#!/bin/bash set -ex echo 1 rm non-existent-file # which will fail echo 2 |
然后它的输出就变成了:
1 |
+ echo 1 + rm non-existent-file rm: non-existent-file: No such file or directory |
注意第一行和第三行前面那个 +
,这就是 -x
参数的作用。
One more thing……
需要注意,这条命令需要放到整个 shell 脚本的开头,才会起作用。毕竟用脑子想想就知道,这是俩开关,不论放在中间还是结尾,都不会起到预期的作用。
这篇关于Shell 脚本中 set -ex 命令的作用的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-05-15鸿蒙生态设备数量超8亿台
- 2024-05-13TiDB + ES:转转业财系统亿级数据存储优化实践
- 2024-05-09“2024鸿蒙零基础快速实战-仿抖音App开发(ArkTS版)”实战课程已上线
- 2024-05-09聊聊如何通过arthas-tunnel-server来远程管理所有需要arthas监控的应用
- 2024-05-09log4j2这么配就对了
- 2024-05-09nginx修改Content-Type
- 2024-05-09Redis多数据源,看这篇就够了
- 2024-05-09Google Chrome驱动程序 124.0.6367.62(正式版本)去哪下载?
- 2024-05-09有没有大佬知道这种数据应该怎么抓取呀?
- 2024-05-09这种运行结果里的10.100000001,怎么能最快改成10.1?