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=$!

ここでの使用に注意してください&。コマンドを並行して実行します。

コマンド ( ) は、代入 ( ) を作成した時点で既に終了しているため、を作成した場合rsync && pid=$!、それは間違っています。そのため、明らかな理由から、その pid を変数に保存することは意味がありません。rsyncpid=$!

于 2012-08-06T08:31:05.917 に答える
2

PID は に格納されて$!おり、おそらく、プログラムの終了後ではなく、プログラムの実行中に PID を取得する必要があります。

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

于 2012-08-06T08:31:26.787 に答える