어디서나 쉘 스크립트를 실행하는 방법

어디서나 쉘 스크립트를 실행하는 방법

Ubuntu Studio 16.10 64비트가 있습니다. 쉘 스크립트 xyz.sh를 만들었습니다. 파일 경로는 home/somefolder/test/xyz.sh입니다. 추가했습니다.

`chmod u+x xyz.sh` 

스크립트를 실행했습니다.

./xyz.sh

효과가 있었습니다.

그러나 홈 디렉토리로 CD를 이동하고 xyz.sh를 실행하면

 ./xyz.sh 

bash: ./xyz.sh: No such file or Directory 메시지가 나타납니다.

하지만 다음을 수행하십시오.

PATH=$PATH:home/somefolder/test/xyz.sh

답변1

경로를 올바르게 추가했다면 다음을 xyz.sh사용하는 대신 이름으로 스크립트를 호출하세요../xyz.sh

./쉘에게 현재 작업 디렉토리를 보고 거기에서 xyz.sh를 실행하도록 지시합니다 .

--

참고로, 디렉터리 경로의 시작 부분에 /가 없습니다. 이어야 합니다 PATH=$PATH:/home/somefolder/test. 전체 실행 파일 이름이 아닌 디렉터리만 추가해야 합니다.

답변2

실행 파일의 경로를 명시적으로 지정하면 셸은 해당 경로를 사용하여 실행 파일을 실행하려고 시도합니다.

만약 이 파일 ./myscriptmyscript현재 디렉터리에 없다면 "해당 파일이나 디렉터리가 없습니다" 오류가 발생합니다. 이것은 실제로아니요변수를 사용하세요 $PATH.

명령줄에 경로가 지정되지 않은 경우 쉘이 실행 파일을 검색할 구분된 디렉터리(파일 아님) 목록이어야 $PATH합니다 . :현재 디렉터리( .)를 변수에 추가하는 것은 잠재적인 보안 위험이 있습니다 PATH("추가하세요. 안전한가요? 내 길은? 어떻게요?").

또 다른 간단한 해결책은 $PATH일반 외부에서 단일 실행 파일에 액세스하려는 경우 별칭을 사용하는 것입니다.

alias myscript=/path/to/myscript

(이것은 쉘 초기화 파일에 있으며 .bashrc사용될 수 있습니다 bash).

별칭에 실행 파일의 전체 절대 경로를 지정해야 합니다.

관련 정보