Bootstrap

shell脚本之教你如何获取上一条命令的内容及结果

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]	执行结果:失败

这样子就两全其美了,如果还有更好的办法的话还请告知,谢谢
在这里插入图片描述

转载请注明!!

悦读

道可道,非常道;名可名,非常名。 无名,天地之始,有名,万物之母。 故常无欲,以观其妙,常有欲,以观其徼。 此两者,同出而异名,同谓之玄,玄之又玄,众妙之门。

;