pgrepをKillに関連付けることはできますか?

pgrepをKillに関連付けることはできますか?

|最初のコマンドの結果を別のコマンドに送信するために使用されることがわかりました。名前に一致するすべてのプロセスを終了したいです。
pgrepが通常行うことは次のとおりです。

$ pgrep name
5089
5105

そして、いくつかのパラメータが次の場合に機能するようですkill

sudo kill 5089 5105

しかし、これは間違っています:

pgrep name | kill

それでは、正しく行う方法は何ですか?

答え1

この試み:

pgrep name | xargs kill

を使用すると、pgrep name | kill出力がpgrep namestdinに供給されますkillkillパラメータがstdinから読み取られないため、これは機能しません。

標準入力から引数を作成するxargsを使用します。kill例:

$ pgrep bash | xargs echo
5514 22298 23079

答え2

これは働きます:

pkill name

また、マニュアルページを読むことをお勧めします。

答え3

具体的な質問ではなく、一般的な質問に答えます。

パイプは、プログラムの出力を次のように渡すために使用されます。入力する別のプログラムで。

プログラムの出力を次のように使用したいようです。コマンドラインパラメータ他のプログラムでは異なります。

これを行うには、次を使用します。コマンドの置き換え

たとえば、実行したい場合

sudo kill 5089 5105

pgrep name出力するコマンドがあります。5089 5105

あなたはそれらを次のようにまとめました。

sudo kill $(pgrep name)

関連情報