我有一个bash脚本文件来处理一些事情。Bash脚本:在单行执行多个命令&&获取返回码
control.sh:
c_command="echo 'Hello'; echo ', Stack Overflow';exit 9";
$c_command;
stat=$?;
if [ $stat -eq 0 ];then
echo 'Do something....'
elif [ $stat -eq 9 ];then
echo 'The system will be rebooting...';
else
echo "..."
fi
我使用变量$ c_command要执行的命令,而我得到的退出代码为0不是9 如果我将其粘贴在命令行中运行完美,但当我脚本运行是非常糟糕的。
通常,当我在脚本中执行“退出”命令时,脚本将退出。 而我只想让命令完成而不是脚本,并从执行的命令中获取退出代码。
我解决了这个问题:
我把$ c_command代码的脚本文件并运行它。
c_command="echo 'Hello'; echo ', Stack Overflow';exit 9";
echo "${c_command}" > tmp.sh;
/bin/bash tmp.sh;
stat=$?;
if [ $stat -eq 0 ];then
echo 'Do something....'
elif [ $stat -eq 9 ];then
echo 'The system will be rebooting...';
else
echo "..."
fi
当我运行此脚本,在'$ c_command'运行正常,并命令有0的退出状态您找到整个剧本终止?你真的在运行你在这里粘贴的脚本吗? –
是的, $ c_command应该是返回退出代码是9不是0,因为我把“退出9”代码在这里。 –