linux中的trap命令 | set

1.trap命令

trap命令用于捕获指定的信号,并配置在接收到指定的信号后将要采取的动作。常见的用途是在脚本程序被中断时完成清理工作。


2.trap的使用格式

(1)trap ‘command’ signal-list   表示捕获信号列表signal-list中的信号,然后执行command命令。

(2)trap ‘’ signal-list   表示捕获signal-list信号列表,并且什么也不做,也就是让脚本忽略这些信号。

(3)trap signal-list    表示让捕获signal-list信号后,执行默认操作。


例如,

trap 'echo you hit Ctrl-C/Ctrl-\, now exiting..; exit' SIGINT SIGQUIT  #表示捕获SIGINT和SIGQUIT信号,然后执行echo和exit操作。

trap 'my_exit; exit' SIGINT SIGQUIT  #将trap的command放到函数中
my_exit()
{
	echo "you hit Ctrl-C/Ctrl-\, now exiting.."
}


3.一点闲话

在shell脚本中,如果某一个命令执行失败,那么该命令后面的其他的命令仍然会执行,当然除了&& ||中的命令。

所以我们需要在脚本中使用if [ $? == 0 ]; then这样的语句来判断,避免后续命令的错误执行。 当然,我们可以在脚本的开始处加入set -e能达到同样的效果。


4.关于set命令

(1)set -e  脚本执行过程如果有命令执行返回值为非0,那么脚本将结束,不在继续执行,类似于-o errexit。使用set +e表示取消set -e。所以在编写脚本中,我们最好默认加上set -e。

(2)set -u 表示脚本中如果有变量没有初始化,那么执行脚本时将会报错。

(3)set -x 表示debug模式执行脚本,相当于sh -x scriptname.sh

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值