해석기 오류로 인해 Bash 스크립트 권한이 거부되었습니다.

해석기 오류로 인해 Bash 스크립트 권한이 거부되었습니다.

저는 칼리리눅스 64비트를 사용하고 있습니다.

시작하려면 2개의 매개변수가 필요한 Python 스크립트를 만들었습니다. 매번 똑같은 경로를 입력하고 싶지 않고, 터미널에서 사용된 명령어 기록을 검색하고 싶지도 않습니다. 그래서 저는 인수를 사용하여 Python 스크립트를 호출하는 간단한 스크립트를 만들기로 결정했습니다.

#! /bin bash

python CreateDB.py ./WtfPath ./NoWtfPath/NewSystem/

이것은 터미널에서 사용하는 것과 똑같은 명령입니다. 그러나 스크립트 파일을 실행하려고 하면 오류 메시지가 나타납니다.

bash: ./wtf.sh: /bin: bad interpreter: Permission denied

wtf.sh에는 실행 권한이 있습니다.

뭐가 문제 야?

답변1

여기에는 슬래시 대신 공백이 있습니다.

#! /bin bash

해야 한다:

#! /bin/bash

아니면 단순히

#!/bin/bash

(첫 번째 공백은 선택 사항입니다.) shebang( #!) 뒤에는 경로가 와야 합니다.실행 파일로, 이는 다음에 올 수 있습니다.논쟁,예를 들어,

#!/usr/bin/env sh

이 경우 /usr/bin/env실행 파일을 man env참조하세요.

단지 /bin디렉토리를 참조합니다.

답변2

스크립트가 있는 마운트 지점에 "noexec" 속성이 있는 경우 원하는 명령을 모두 실행할 수 있지만 여전히 작동하지 않지만 스크립트를 인수로 사용하여 인터프리터를 호출한다는 점은 주목할 가치가 있습니다. 반대의 경우 noexec 마운트에서 다른 스크립트를 실행해 보십시오.

관련 정보