쉘 스크립트 실행

쉘 스크립트 실행

나는 정확히 동일한 권한 등을 가진 두 개의 쉘 스크립트 파일을 가지고 있습니다. 그 중 하나는 명령줄에 이름을 지정하여 실행할 수 있지만 다른 하나는 sh 또는 ./를 사용하여 실행해야 합니다. 이유는 무엇입니까?

답변1

이상한 점은 2개의 스크립트가 서로 다른 디렉터리에 있다는 것입니다. 디렉터리 중 하나는 PATH에 있고 다른 디렉터리는 그렇지 않습니다.

type이 명령을 사용하여 현재 셸의 $PATH에 파일이 있는지 테스트 할 수 있습니다 .

$ type start_dropbox.bash
start_dropbox.bash is /home/saml/bin/start_dropbox.bash

U&L Q&A 보기 "$PATH에 애플리케이션이 있는지 확인하려면 어떻게 테스트합니까?"보다 철저한 취재를 위해.

답변2

스크립트 이름을 제공하고 작동한다면 /usr/bin/ /usr/sbin 등에 해당 스크립트가 있는 것입니다. 그것은 모두 경로가 무엇으로 설정되어 있는지에 따라 다릅니다.

이 작업을 수행:

1. echo $PATH

스크립트가 해당 디렉토리에 있으면 절대 경로를 사용하지 않고 실행됩니다.

2. whereis "scripts name"

Whereis 또는 "which"는 그것이 어디에 있는지 알려줄 것입니다. 한 파일 실행 권한을 부여하고 다른 파일 실행 권한은 부여하지 않았을 수도 있습니다. 이름만으로 실행되지 않는 경우 chmod u+x를 수행하십시오.

  1. Python 스크립트인 경우 #!/usr/bin/env python을 추가하고 bash인 경우 #!/usr/bin/env bash 등을 추가해야 할 수도 있습니다.

관련 정보