Leo_zhou

练习时长八年半的运维工程师

shell脚本中set -e作用

最近学习shell脚本想到一个问题,如果脚本中出现了一条异常语句,甚至可以影响整个脚本的使用,那么是否有一旦出现问题就可以及时停止的方法呢?在shell脚本中set命令就可以轻松实现。set命令的-e参数,linux系统自带的说明是:”Exit immediately if a simple command exits with a non-zero status.”,也就是说,在”set -e”之后出现的代码,一旦出现了返回值非零,整个脚本就会立即退出,那么就可以避免一些脚本的危险操作。

实验如下:

#!/bin/sh
#set -e
ls /data/leo
echo $?
./ex1.sh

如果没有使用set -e,在ls /data/leo语句时会提示找不到文件,但会继续执行下一条语句
《shell脚本中set -e作用》

使用了set -e后,在ls /data/leo语句时依然会提示找不到文件,但不会执行下一条语句了
《shell脚本中set -e作用》

补充:关于exit 0 exit 1以及echo $?说明
exit 0—是正常退出的命令
exit 1—是非正常退出的命令
echo $?获取上次命令执行的结果,如果是0就是正常执行,如果非0就是执行出现了异常。

点赞

发表评论

电子邮件地址不会被公开。 必填项已用*标注