1つ以上のPIDをpgrepからtopの-pパラメータに送信します。

1つ以上のPIDをpgrepからtopの-pパラメータに送信します。

私は次の素晴らしい質問を見ました。

前のコマンドの出力を次のコマンドの引数に渡します。

そして、成功していないまま私が欲しいものを手に入れようとしました。

私はしばしばmaxima / lispプロセスを見たいと思い、top / htop / etcを実行する代わりに "maxima.core"を検索し、その検索から返されたpidをtopの "-p"フラグへの入力として使用できると思います。 。複数を返すことはあまり問題になりません。

1.) PID を知っている場合は、次のものを使用できます。

top -p 10815 -o S -d 0

2.) PID を取得するには、次の手順を実行します。

ps -fu <user> | pgrep -f maxima.core

以下の一覧が出力されます。

10814
11989

しかし、接続しようとして失敗しました。私の試みは主に次のとおりです。

<user>@<user> ~ $ top -o S -d 0 -p $(ps -fu <user> | pgrep -f maxima.core)

また、この結果をマージしてみました。通常、複数の「n」で始まる位置引数を取得するにはどうすればよいですか?

top -o S -d 0 -p "${(ps -fu <user> | pgrep -f maxima.core)[@]}"

しかし、代替性が良くないという不満を吐露している。

私はbashに大きく依存しています。

答え1

あなたのバージョンが()オプションをpgrepサポートしている場合は、それを使用してカンマ区切りのPIDのリストを提供できます。-d--delimitertop

top -o S -d 0 -p "$(pgrep -d, -u <user> -f maxima.core)"

関連情報