shell中set -e的具体使用
set -e 是一个 Shell 命令,它用于在脚本运行时自动退出,如果命令执行失败,则它将立即退出并返回一个非零的退出状态码。这个命令可以确保在脚本运行时,如果有任何错误发生,脚本将停止运行,避免继续执行可能会产生更多问题的命令。
例如,在以下脚本中,如果在执行第一条命令时发生错误,脚本将立即停止运行,而不会继续执行后面的命令:
#!/bin/bash set -e # 执行第一条命令 command1 # 执行第二条命令 command2 # 执行第三条命令 command3
在这个示例中,如果 command1 执行失败,脚本将停止运行,并返回一个非零的退出状态码。如果 command1 执行成功,脚本将继续执行 command2 和 command3。
如果不使用 set -e?
如果不使用set -e 命令,当脚本中有命令执行失败时,脚本将继续执行后面的命令。这可能会导致一些潜在的问题,因为后续的命令可能会继续执行,而不考虑前面的命令是否执行成功。
例如,在以下脚本中,如果**command1 执行失败,脚本将继续执行** command2 和 command3:
#!/bin/bash # 执行第一条命令 command1 # 执行第二条命令 command2 # 执行第三条命令 command3
在这个示例中,如果 command1 执行失败,脚本将继续执行 command2 和 command3,这可能会导致一些潜在的问题。
因此,使用 set -e 命令可以确保在脚本运行时自动退出,如果命令执行失败,则它将立即退出并返回一个非零的退出状态码,以避免可能的问题。
示例
001、 不加 set -e的情况
(base) [root@PC1 test2]# ls test.sh (base) [root@PC1 test2]# cat test.sh #!/bin/bash xxxx echo step2 (base) [root@PC1 test2]# bash test.sh test.sh: line 3: xxxx: command not found step2
002、添加set -e
(base) [root@PC1 test2]# ls test.sh (base) [root@PC1 test2]# cat test.sh #!/bin/bash set -e xxxx echo step2 (base) [root@PC1 test2]# bash test.sh test.sh: line 5: xxxx: command not found
到此这篇关于shell中set -e的具体使用的文章就介绍到这了,更多相关shell set -e 内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!
相关文章
linux上配置jdk时,java命令提示没有此文件或文件夹的解决方法
下面小编就为大家带来一篇linux上配置jdk时,java命令提示没有此文件或文件夹的解决方法。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧2017-05-05如何使用Shell脚本掩盖Linux服务器上的操作痕迹(推荐)
这篇文章主要介绍了使用Shell脚本掩盖Linux服务器上的操作痕迹,需要的朋友可以参考下2017-12-12
最新评论