退出重定向命令的代码

use*_*439 5 linux bash scripting

所以我想验证特定命令的退出代码

runuser -s /bin/bash @user_name -c $command > /dev/null 2>&1 &
Run Code Online (Sandbox Code Playgroud)

如何查找命令是否runuser -s /bin/bash @user_name -c $command正确执行?我尝试使用,$?但它不起作用,因为它始终为0(重定向的结果为0)

如何找到该命令的退出代码?

Bri*_*new 11

由于任务(通过&)的后台处理而不是重定向,退出代码不可用.

您应该使用wait来获取后台任务的退出代码.

wait命令停止脚本执行,直到所有在后台运行的作业终止,或者直到指定为作为选项的作业号或进程ID终止.它返回waited-for命令的退出状态.