bash
이라는 내부 명령이 있고 kill
, 리눅스에도 이라는 외부 명령(프로그램)이 있습니다 kill
.
kill
에서 실행하면 bash
내부 명령이 kill
실행됩니다.
두 가지 질문이 있습니다.
- 기본적으로 내부 명령 대신 외부 명령이 실행되도록 변경할 수 있는 설정이 있습니까(물론 외부 명령의 전체 경로를 지정하지 않고).
- 모든 (주요) 셸에서 기본적으로 외부 명령 대신 내부 명령이 실행되는 것이 표준 동작입니까, 아니면 단지
bash
것입니까?
답변1
env
호출하는 데 사용합니다 .$ env kill kill: not enough arguments $ kill kill: usage: kill [-s sigspec | -n signum | -sigspec] pid | jobspec ... or kill -l [sigspec]
모든 쉘 및 명령 프로세서.
답변2
첫 번째 질문에: 예, 기본적으로 내부 명령 대신 외부 명령을 실행하도록 설정이 있습니다.
다음과 같이 내장 기능을 끌 수 있습니다.
enable -n COMMAND
다음과 같이 내장 기능을 켤 수 있습니다.
enable COMMAND
또는 명령의 우선순위를 변경할 수 있습니다. bash 명령의 우선순위는 다음과 같습니다.
- 별칭, 최고야
- 기능
- 내장
- $PATH의 외부 명령
두 번째 질문에 대해: 저는 항상 내부 명령이 외부 명령보다 우선한다고 가정할 수 있다고 생각합니다. 그것은 단지 bash 일이 아닙니다.