0

コマンドを実行しようとしています:

ps -e|grep some-process-name|grep -v grep|awk '{print $1}'|grep -v $$  

そして、プロセス名が「some-process-name」のプロセスのpidが表示されます

しかし、シェルスクリプトで同じ長いコマンドを使用すると、プロセス名がコマンドライン引数として渡され、「$1」を介して使用され、出力に 2 つの pid が表示されます。

PIDS=$(ps -e|grep $1|grep -v grep|awk '{print $1}'|grep -v $$)
echo $PIDS    

この理由は何ですか?助言がありますか?

4

1 に答える 1

0

Ubuntu12.04のbash4.0ではこの動作は見られません。pgrepはお使いのプラットフォームで利用できますか? pgrepsome-process-nameがあなたに代わってトリックを行うはずです。

于 2012-07-07T19:02:46.053 に答える