Я играю с трубками, чтобы узнать, как их использовать. Я пытаюсь эту команду убить процесс по имени: pgrep <some_process> | kill
, но вывод, который я получаю, является инструкцией по использованию для kill, так как он не получил никакого ввода.
, конечно, я знаю, что есть более простой способ выполнить ту же задачу, что и pkill или killall, но я хочу знать, почему это не работает.
Спасибо [ ! d3]
Как объяснил Флориан, kill ожидает ввода командной строки.
Чтобы обойти эту проблему, вы можете использовать
xargs для построения аргументов командной строки для команды, например pgrep vivaldi | xargs kill или еще лучше pgrep vivaldi | awk 'BEGIN{ORS=" "} 1' | xargs kill. Замена оболочки: kill $(pgrep vivaldi) killall, который выполняет почти ту же работу, что и pgrep и kill, например, killall vivaldi pkill, другая утилита для убийства на основе имени, например pkill vivaldiДля убийства программы по ее имени, если вы действительно знаете имя процесса, вы можете просто использовать команду skill <your process name>;
Теперь для труб хороший способ понять их с инструментами, такими как echo, more, less, tail, head и т. д. Существует много программ, которые действительно могут читать из трубы ... один, который я всегда использовал grep. [ ! d1]