下面图片中的:在这里插入图片描述
我看脚本中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: 表示该命令之后,当命令使用到未定义过的变量时,脚本直接退出,后续命令不在执行。

Logo

更多推荐