Saya perhatikan bahwa |
digunakan untuk mengirim hasil dari perintah pertama ke yang lain. Saya ingin membunuh semua proses yang sesuai dengan nama.
Inilah yang biasanya dilakukan pgrep:
$ pgrep name
5089
5105
Dan beberapa argumen tampaknya bekerja dengan kill
:
sudo kill 5089 5105
Tapi ini salah:
pgrep name | kill
Jadi bagaimana cara melakukannya dengan benar?
pkill
. Dan jika itu tidak ada,kill $(pgrep ...)
.man pgrep
. Tombol downvote mengatakan itu untuk saat sebuah pertanyaan tidak menunjukkan upaya penelitian, dan saya tidak bisa melihatnya di pertanyaan Anda. Maaf jika itu tampak kasar.Jawaban:
Coba ini:
Jika Anda menggunakan
pgrep name | kill
, ouputpgrep name
feed untuk stdinkill
. Karenakill
tidak membaca argumen dari stdin, jadi ini tidak akan berfungsi.Menggunakan
xargs
, itu akan membangun argumen untukkill
dari stdin. Contoh:sumber
Ini seharusnya bekerja:
Saya juga menyarankan untuk membaca halaman manual.
sumber
Untuk menjawab pertanyaan umum ...
Pipa adalah untuk melewatkan output dari satu program sebagai input ke program lain.
Sepertinya Anda mencoba menggunakan output satu program sebagai argumen baris perintah ke program lain, yang berbeda.
Untuk melakukan itu, gunakan substitusi perintah .
Misalnya jika Anda ingin menjalankan
Dan Anda memiliki perintah
pgrep name
yang menghasilkan5089 5105
Anda menempatkan mereka bersama seperti
sumber