|
最初のコマンドの結果を別のコマンドに送信するために使用されることがわかりました。名前に一致するすべてのプロセスを終了したいです。
pgrepが通常行うことは次のとおりです。
$ pgrep name
5089
5105
そして、いくつかのパラメータが次の場合に機能するようですkill
。
sudo kill 5089 5105
しかし、これは間違っています:
pgrep name | kill
それでは、正しく行う方法は何ですか?
答え1
この試み:
pgrep name | xargs kill
を使用すると、pgrep name | kill
出力がpgrep name
stdinに供給されますkill
。kill
パラメータが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)