./를 사용하여 스크립트를 실행할 수 없습니다. [닫기]

./를 사용하여 스크립트를 실행할 수 없습니다. [닫기]

내 직장에서는 일반적으로 다음 구문을 사용하여 Linux 서버에서 스크립트를 실행합니다.

./<whatever absolute path to script>/<script>

분명히 이것은 올바른 사용자와 올바른 권한으로 실행되면 일반적으로 스크립트를 실행합니다.

이제 최근에 서버에 어떤 변경 사항이 적용되었는지 전혀 알 수 없습니다. SA는 종종 알림을 전혀 제공하지 않고 업그레이드, 패치 및 수정 사항을 관리합니다. 문제는 최근 동일한 구문을 사용하여 스크립트를 실행하려고 하면 "스크립트를 찾을 수 없음"으로 인해 실행에 실패한다는 것입니다.

해결 방법은 다음과 같은 유효한 구문을 사용하는 것입니다.

bash /<whatever absolute path to script>/<script>

저는 SA 또는 Unix 서버 구성 전문가가 아닙니다. 이러한 문제가 발생하는 이유와 해결 방법을 아는 사람이 있습니까?

미리 감사드립니다.

답변1

예제에서 절대 경로를 언급했듯이 다음 명령을 사용해야 합니다.

/<whatever absolute path to script>/<script>

oa 점은 상대 경로 검색을 의미하기 때문입니다(점은 현재 디렉터리입니다). 사용 지점은 현재 디렉터리가 /(루트) 인 경우에만 유효합니다.

또한 권한 및 실행 플래그를 확인하세요. Sor 스크립트에서는 읽기 권한도 설정해야 합니다.

답변2

ls -l스크립트가 있는 디렉터리에서 스크립트를 실행하여 스크립트가 "실행 가능"한지 확인할 수 있습니다. 출력의 첫 번째 열에는 소유자, 그룹 또는 다른 사람의 "linux 권한"이 표시됩니다.

실행 가능 비트가 설정되었음을 나타내는 "x"가 표시됩니다.

-rwxr-xr-x

이 예에는 세 개가 있으므로 파일 소유자, 소유 그룹의 모든 사람 및 다른 사람이 파일을 실행할 수 있습니다. 권한 비트에 대한 다음 블로그 항목을 찾았습니다.https://www.linuxfoundation.org/blog/blog/classic-sysadmin-understanding-linux-file-permissions.

답변3

  • 스크립트가 실행 가능한지 확인하세요.
    chmod +x <name of the script>
    
  • PATH어디서나 실행하려면 해당 위치에 배치하세요. 경로를 찾으려면 다음을 실행하세요.
    echo $PATH
    

관련 정보