Bash를 대화 형 셸로 사용하고 Bash가 동일한 이름을 공유하는 경우 셸 내장 명령 대신 시스템 명령을 실행하는 쉬운 방법이 있는지 궁금합니다.
예를 들어, 시스템 kill
(from util-linux
)을 사용하여 신호를 보내는 대신 명명 된 프로세스의 프로세스 ID (pid)를 인쇄하십시오.
$ /bin/kill -p httpd
2617
...
시스템 명령의 전체 경로를 지정하지 않으면 시스템 명령 대신 Bash 내장이 사용됩니다. kill
내장은없는 -p
명령이 실패 할 수 있도록 옵션 :
$ kill -p httpd
bash: kill: p: invalid signal specification
나는에 나와있는 답하려 만들기 bash는 사용 외부`time` 명령보다는 쉘 내장을 그러나 대부분에만 작동하기 때문에이 time
실제로 쉘입니다 키워드 - 아니 쉘 내장 .
로 Bash 내장 기능을 일시적으로 비활성화하는 것 외에도 enable -n kill
지금까지 본 최고의 솔루션은 다음을 사용하는 것입니다.
$(which kill) -p httpd
쉘 내장 대신 외부 명령을 실행하는 다른 쉬운 방법이 있습니까?
참고 kill
단지 예이며, 내가 원하는 일반화 와 접두어하는 방식과 유사한 솔루션 command
실행되는 외부 명령과 동일한 이름을 가진 내장의 방지 기능을. 대부분의 경우 새 프로세스를 forking하고 저장하기 위해 내장 명령을 사용하는 것이 좋으며 내장 명령에 따라 외부 명령이 제공하지 않는 기능이 있습니다.
which kill
(코멘트를 넣을 수 없습니다) 역 따옴표에있는 것은 약간 짧다.