Linux 脚本:获取后台运行进程返回值的两种方法
在Linux脚本中,如果在指令后面加一个'&'将进程放到后台运行,那么该指令的返回值将会变成0,因为在后台运行的进程无法直接返回值给脚本。如果需要获取后台进程的返回值,可以使用以下两种方法:
- 使用$!获取后台进程的PID,然后使用wait命令等待进程结束,最后使用$?获取进程的返回值。示例代码如下:
command &
pid=$!
wait $pid
ret=?
echo 'Process $pid exited with return value $ret'
- 使用管道(pipe)将后台进程的输出重定向到一个文件中,然后在脚本中读取该文件获取进程的返回值。示例代码如下:
command > output.txt &
pid=$!
wait $pid
ret=$(cat output.txt)
echo 'Process $pid exited with return value $ret'
原文地址: https://www.cveoy.top/t/topic/oblW 著作权归作者所有。请勿转载和采集!