回答:
このsed
ような単純なものの代替手段はtr
次のとおりです。
top -p $(pidof program | tr ' ' ',')
tr
また、可変数のスペースを簡単に処理できます。
tr -s ' ' ','
また、利用可能な場合は、pgrep
ここでうまく機能できます。
top -p $(pgrep -d , program)
必ず間にスペースを残していることを確認してください-d
と,
コンマとして引数(deliminatorを)されます。
また、pgrepは「program」のすべての結果を返すため、「program-foo」というプロセスがある場合は、これも返されることに注意してください(そのため、pgrepという名前が付けられます)。
これは、複数のプログラムを監視するのに適しています。
top -p `pgrep -d, -f program1`, `pgrep -d, -f program2`
top -p $(pgrep -d, "(nginx|mysql)" )
top -p $(pgrep -d, "(nginx|mysql)" )