所以我想驗證一個特定的命令退出代碼
runuser -s /bin/bash @user_name -c $command > /dev/null 2>&1 &
我如何找到命令runuser -s /bin/bash @user_name -c $command
是否正確執行的退出代碼? 我試過使用$?
,但它不工作,因爲它總是0(重定向的結果是0)
我怎樣才能找到該命令的退出代碼?
所以我想驗證一個特定的命令退出代碼
runuser -s /bin/bash @user_name -c $command > /dev/null 2>&1 &
我如何找到命令runuser -s /bin/bash @user_name -c $command
是否正確執行的退出代碼? 我試過使用$?
,但它不工作,因爲它總是0(重定向的結果是0)
我怎樣才能找到該命令的退出代碼?
退出代碼不可用由於任務的背景(通過&
),而不是的重定向。
您應該使用wait來獲取後臺任務的退出代碼。
等待命令停止腳本執行,直到 後臺運行的所有作業已經結束,或直至作業號或進程ID 指定爲選項終止。它返回等待命令的退出狀態 。
如果程序不會在後臺運行,Brian會怎麼樣?我能否獲得退出代碼? –
您可以在bash中使用$!
來獲取最後一個後臺進程的pid。然後你可以做wait pid
。這將一直等到使用pid的過程完成。
runuser -s /bin/bash @user_name -c $command > /dev/null 2>&1 &
myPid=$!
wait $myPid
status=$?
echo "Exit status of the process with pid: $myPid is $status"
你的程序在後臺運行:
因此,對於你的腳本,你可以做這樣的事情。 – Antarus
不要污衊你的帖子。 – ChrisF