我在 bash 脚本中启动了这个命令:
rsync -av $sourcedir/ $destdir/
如何将特定命令的 PID 存储在同一脚本的变量中?
我试过:
rsync -av --stats $sourcedir/ $destdir/ && pid=$(echo $$)
但是在日志文件中为该操作报告的 pid 不同于打印出来的回显 $pid
谢谢你的帮助!
rsync -av --stats $sourcedir/ $destdir/ & pid=$!
注意&
这里的用法。您并行运行命令。
如果你 make rsync && pid=$!
,那就错了,因为命令 ( rsync
) 在你进行赋值 ( ) 的时候已经完成了pid=$!
,所以出于显而易见的原因,将它的 pid 保存在变量中是没有意义的。
PID 存储在$!
其中,您可能希望在程序运行时获取 PID,而不是在程序完成后获取。
rsync -av --stats $sourcedir/ $destdir/ & pid=$!