command
명령: bash
command라는 셸 함수를 무시하고 인수를 사용하여 명령을 실행합니다.
이 -p
옵션은 $PATH
모든 표준 유틸리티가 기본값을 사용하여 검색된다는 것을 의미합니다.
여기에 언급된 기본값은 정확히 무엇입니까 PATH
? 을 정의할 때 기본값 위에 새 경로를 추가 export PATH="/home/ozgur/":$PATH
하지 않습니까 ?PATH
예를 들어:
$ export PATH="/home/ozgur/":$PATH
$ echo $PATH
/home/ozgur/:/usr/local/bin:/usr/bin:/bin:/usr/local/games:/usr/games
$ script.sh
hey, i am working !
$ command -p script.sh
hey, i am working !
명령에서 해당 -p
옵션을 사용할 때 내가 정의한 새 경로를 command
무시하고 싶지만 PATH
그런 일은 일어나지 않습니다. 여기서 정확히 무엇을 놓치고 있습니까? 사용자 경로 변경 사항을 덮어쓰지 않는 -p
경우 이 옵션을 사용하는 이유는 무엇입니까?PATH
답변1
여기서 정확히 무엇을 놓치고 있습니까?
명령 script.sh
이 해시되었습니다. 실행하면 hash -r
예상 command -p script.sh
대로 실패합니다. 하지만 직접 실행하면 다시 해시됩니다.
이것은 bash의 버그처럼 보입니다. 다른 쉘에서는 발생하지 않습니다.
답변2
bash 호출의 기본 경로를 설정합니다 STANDARD_UTILS_PATH
.이 서버 오류 답변, 컴파일 시 기본값은 다음과 같습니다.
/bin:/usr/bin:/sbin:/usr/sbin:/etc:/usr/etc
소스도 볼 수 있어요GNU 사바나.