我有一個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」代碼在這裏。 –