Linux: 脚本中添加set -e/u、set +e/u作用及作用域证明
下面图片中的:我看脚本中set +e、set -e、set +u、set -u是蒙圈的,这些表示什么意思呢?在redhat系统执行:man set可以看到set 的说明。set -e: 表示该命令之后,当出现命令行返回值为非0的情况时,脚本直接退出,后续命令不在执行。set -u: 表示该命令之后,当命令使用到未定义过的变量时,脚本直接退出,后续命令不在执行。样例验证说明正确及作用域set +/-
·
下面图片中的:
我看脚本中set +e、set -e、set +u、set -u是蒙圈的,这些表示什么意思呢?
在redhat系统执行:man set
可以看到set 的说明。
set -e: 表示该命令之后,当出现命令行返回值为非0的情况时,脚本直接退出,后续命令不在执行。
set -u: 表示该命令之后,当命令使用到未定义过的变量时,脚本直接退出,后续命令不在执行。
样例验证说明正确及作用域
set +/-e样例:
hello.sh内容如下:
#! /bin/bash
set +e
sshExec=$(which ssh1d)
echo $?
echo "hello world.."
set -e
echo "error cmd"
sshExec=$(which ssh1d)
echo $?
echo "hello world.."
执行命令:sh hello.sh
验证使用**+e**:即使脚本中有命令执行失败,脚本还会继续往下执行。
验证使用**-e**:即使脚本中有命令执行失败,脚本会直接退出。
set +/-u样例:
#! /bin/bash
set +u
echo $undefin_var
echo "hello world.."
set -u
echo $undefin_var
echo "hello boy"
set +u: 表示该命令之后,当命令使用到未定义过的变量时,脚本直接退出,后续命令继续执行。
set -u: 表示该命令之后,当命令使用到未定义过的变量时,脚本直接退出,后续命令不在执行。
更多推荐
已为社区贡献4条内容
所有评论(0)