쉘 스크립트를 실행할 때“명령을 찾을 수 없습니다”. 내가 무엇을 깨뜨 렸습니까?


8

OSX Snow Leopard를 사용하고 있습니다.

전체 내용은 다음과 같습니다 grr.sh.

#!/bin/sh

echo wow

터미널에서 실행하려고하면 :

$ grr.sh
-bash: grr.sh: command not found
$ /bin/sh grr.sh
wow
$ sh grr.sh
wow
$ bash grr.sh
wow

괜찮아. 충분합니다. 실행 권한을 부여한 다음 다시 시도하십시오.

$ chmod +x grr.sh
$ grr.sh
-bash: grr.sh: command not found
$ chmod 755 grr.sh
$ grr.sh
-bash: grr.sh: command not found

흠. bash를 명시 적으로 사용하면 효과가 있습니까? 파일 내용을 다음과 같이 변경합니다.

#!/bin/bash

echo wow

그리고 나는 똑같은 결과를 얻습니다. 내가 무엇을 깰 수 있었습니까?!

마지막 한가지! 궁금한 점이 있다면 ...

$ which sh
/bin/sh

답변:


19

물론 아무것도 아닙니다. 의 디렉토리 중 하나에있는 실행 파일 만 $PATH직접 실행할 수 있으며 .(보통) 결코 없습니다 $PATH. 실행 파일의 경로를 지정하십시오 (예 :) ./grr.sh.


3
+1. 또한 현재 디렉토리 기본적으로 Windows 시스템의 경로에 있으며 우선 순위가 가장 높습니다. 이 결정적인 차이는 아마도 혼란의 근원입니다.
afrazier 2018 년

당신은 9 초에 처음이었습니다! 고맙습니다!
폐쇄 카우보이

내 맥북 저장
vietnguyen09

7

$PATH변수 에서 grr.sh의 위치는 무엇입니까? 그렇지 않은 경우 다음을 입력해야합니다.

./grr.sh

grr.sh와 동일한 폴더에있는 경우 그렇지 않은 경우 전체 경로를 제공하십시오.


6

파일에 대한 권한이 잘못되었습니다. 다음 명령을 시도하십시오 :

  $ chmod 777 file.sh
  $ ./file.sh

0

예, ./grr.sh의 의미는이 디렉토리에서 grr.sh 명령을 실행한다는 것입니다. 싱글. 작업 디렉토리의 의미. 그렇지 않으면, 쉘은 $ PATH에서 명령을 실행하려고한다고 가정합니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.