모든 스크립트에서 "command -p"를 어떻게 자동화할 수 있나요?

모든 스크립트에서 "command -p"를 어떻게 자동화할 수 있나요?

command -p다음을 사용하여 스크립트의 모든 명령을 실행하고 싶습니다 .

command -p pwd

다른 사용자 정의 사용자 스크립트에서 이름을 사용하는 스크립트에서 일부 명령을 실행할 수 있기 때문에 이 경우 명령 command으로 인해 사용자 명령 대신 시스템 명령이 실행됩니다. 뒤에서 실제로 무슨 일이 일어나고 있는지 살펴보고 맨 페이지를 확인하세요.) 이것이 제가 원하는 것입니다.

command -p좋아, 스크립트에서 명령을 호출할 때마다 줄 시작 부분에 문자 그대로 ""를 입력할 필요가 없도록 command -p스크립트에서 전역적으로 동작을 정의할 수 있는 방법이 있습니까?

답변1

PATH=$(command -p getconf PATH)${PATH+:$PATH}

출시 예정POSIX 검색 경로는 $PATH 앞에 옵니다.

위 명령은 다음 예를 제공한다는 것을 알 수 있습니다.command표준 유틸리티 사양.

작동하려면 지원을 위해 POSIX 쉘에서 실행되어야 합니다 command -p.

Solaris와 같이 여러 버전의 표준을 지원하는 시스템에서 /use/xpg6/bin(포함 getconf)의 명령은 /use/xpg4/bin의 명령과 다르게 동작하며, 얻는 명령은 초기 환경에 따라 달라질 수 있습니다.

$PATH 값이 쉘 내장 함수의 동작에 영향을 미치는지 여부도 쉘에 따라 다릅니다.

답변2

PATH쉘은 실행할 실행 파일을 찾습니다 . PATH보다 우아한 솔루션을 위해 변수에서 사용자 쓰기 가능 디렉터리를 제외 할 수 있습니다 . 따라서 스크립트 시작 부분에 다음을 추가합니다.

PATH='/usr/local/bin:/usr/bin:/bin:/usr/sbin/:/sbin/:/usr/local/games:/usr/games'

관련 정보