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 +/-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: 表示该命令之后,当命令使用到未定义过的变量时,脚本直接退出,后续命令不在执行。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

WEL测试

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值