|
나는 이것이 첫 번째 명령의 결과를 다른 명령으로 보내는 데 사용된다는 것을 알았습니다 . 이름과 일치하는 모든 프로세스를 종료하고 싶습니다.
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
. stdin에서 인수를 읽지 않기 때문에 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)