어떤 명령이 수행되는지 확인하는 방법?


9

에 쉘 스크립트가 foo.sh있습니다 /usr/local/sbin. 게다가 나는 같은 이름의 다른 스크립트를 사용합니다. 에 저장됩니다 /home/user/scripts.

두 경로는 모두에 속합니다 PATH. foo.sh명령 줄에 입력 할 때 어떤 스크립트가 실행되는지 어떻게 알 수 있습니까? 영향을 줄 수 있습니까?

답변:


10

며칠 전 나는 대답에 만족했다. 또한 which명령이 존재하는지 테스트하는 데 명령이 사용되지 않는다는 것도 알고있었습니다 . 이제 나는 내 대답에 너무 만족하지 않으며이 위대한 반응을 참조하십시오 .


간단한 which명령으로 :

which foo.sh

또는 type명령 :

type foo.sh

$PATH스크립트가 시작될 때 경로의 순서 또는 절대 경로를 통해 이에 영향을 줄 수 있습니다 . EG

/home/user/scripts/foo.sh

PATH가 아래와 같이 정의 된 경우

/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games

그리고 스크립트 나 그 /usr/local/bin안에 /usr/bin있는 스크립트를 /usr/local/bin우선 순위가 높은 것으로 시작합니다.


1
말하기 bashzsh도 년대 type내장; 대신에 zsh which와는 달리 bash내장 된 (및 아님 /usr/bin/which)
kos


@muru 감사합니다. 나는 그것에 대해 이미 알고 있었지만 세부적인 것은 아닙니다. 내 답변에 내 견해를 추가했습니다. 다시 감사합니다.
AB
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.