0

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

rsync -av $sourcedir/ $destdir/

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

我试过:

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

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

谢谢你的帮助!

4

2 回答 2

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

注意&这里的用法。您并行运行命令。

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

于 2012-08-06T08:31:05.917 回答
2

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

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

于 2012-08-06T08:31:26.787 回答