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에 공급됩니다 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)

관련 정보