1、应用场景
针对命令的结果进行判断只能知道哪一步出错,但是无法知道具体执行了什么命令,虽然可以用-x参数进行调试,但是眼花缭乱的字符看起来太麻烦了,所以为何不执行获取没一条命令内容及结果进行判断呢?
2、实现方法
2.1、脚本模板
最简单的一种就是利用函数及传参,测试内容如下
[root@controller ~]# cat t
cmd(){
$1 > /dev/null
if [[ "$?" -eq "0" ]];then
echo -e "执行的命令: [$1]\t执行结果: 成功"
else
echo -e "执行命令:[$1]\t执行结果:失败"
fi
}
echo "第一条命令"
cmd "ip a"
echo "第二条命令"
cmd "rm -f dd"
echo '第三'
cmd 'sd'
2.2、执行结果
[root@controller ~]# cat t
cmd(){
$1 > /dev/null
if [[ "$?" -eq "0" ]];then
echo -e "执行的命令: [$1]\t执行结果: 成功"
else
echo -e "执行命令:[$1]\t执行结果:失败"
fi
}
echo "第一条命令"
cmd "ip a"
echo "第二条命令"
cmd "rm -f dd"
echo '第三'
cmd 'sd'
[root@controller ~]# bash t
第一条命令
执行的命令: [ip a] 执行结果: 成功
第二条命令
执行的命令: [rm -f dd] 执行结果: 成功
第三
t:行2: sd: 未找到命令
执行命令:[sd] 执行结果:失败
这样子就两全其美了,如果还有更好的办法的话还请告知,谢谢