私は次のようにプロセスを数えています:
ps aux | grep my_script.php | grep -v grep | wc -l
ただし、これには と の両方my_script.php foo=1
の結果が含まれmy_script.php foo=1&bar=2
ます。
これらのカウントをどのように分離できますか? bar
引数を含めていない人とは別に、引数を含めている人が何人いるかを数えたいと思いますbar
。
ps aux...
上記が 2 (引数を含むものと含まないもの) を返すと仮定すると、bar
一度に 1 つずつ検索するにはどうすればよいでしょうか?
望ましい結果: (説明のための明白な偽のプレースホルダー付き)
// list all my_script.php processes
$ ps aux | grep my_script.php | grep -v grep
root 10 ... Ss 14:34 0:53 php /path/to/my_script.php foo=1&bar=2
root 12 ... Ss 14:35 0:46 php /path/to/my_script.php foo=1
// returns 2 lines (this works)
// Just count just those including the `bar` argument
$ ps aux | grep my_script.php _____+bar_____ | grep -v grep | wc -l
// return 1
// Just count only those NOT including the `bar` argument
$ ps aux | grep my_script.php _____-bar_____ | grep -v grep | grep -v bar | wc -l
// return 1
アップデート
bar
次のような結果を大まかに除外できます。
$ ps aux | grep my_script.php | grep -v grep | grep -v bar | wc -l
明らかに、スクリプト名またはパスにbar
文字列が含まれている可能性がある場合は機能しませんが、今のところ機能します。私が求めている主なことは、反対を数える方法です。つまり、 のみを含むものをカウントする方法bar
です。