在变量中写入命令的PID

时间:2012-08-06 08:28:30

标签: linux bash pid

我在bash脚本中启动了此命令:

rsync -av $sourcedir/ $destdir/

如何将该特定命令的PID存储在同一脚本的变量中?

我试过:

rsync -av --stats $sourcedir/ $destdir/ && pid=$(echo $$)

但是在日志文件中报告的该操作的pid与打印出的回显$ pid的pid不同

感谢您的帮助!

2 个答案:

答案 0 :(得分:2)

rsync -av --stats $sourcedir/ $destdir/ & pid=$!

请注意此处的&用法。您可以并行运行命令。

如果你制作rsync && pid=$!,那就错了,因为命令(rsync)已经在你进行作业的时候完成了pid=$!,所以它是没有的感觉是出于显而易见的原因将其pid保存在变量中。

答案 1 :(得分:2)

PID存储在$!中,您可能希望在程序运行时获取PID,而不是在完成后获取。

rsync -av --stats $sourcedir/ $destdir/ & pid=$!