다음을 포함하는 파일이 있다고 가정해 보겠습니다 run.sh
.
#! /bin/sh -x
x-www-browser index.html
그리고 ls -l run.sh
말했다:
-rwxr-xr-x 1 myusername myusername 39 Jan 9 19:32 run.sh
그리고 ./run.sh
말했다:
bash: ./run.sh: Permission denied
왜 작동하지 않나요? 왜 sh -x run.sh
완벽하게 작동합니까?
더 많은 정보, 왜냐하면 분명히 쉽지 않기 때문입니다
을 실행하면 sudo
오류가 출력되지 않지만 아무 작업도 수행되지 않습니다.
myusername@crunchbang:/mnt/data$ sudo ./run.sh
[sudo] password for myusername:
myusername@crunchbang:/mnt/data$
답변1
파일 시스템이 run.sh
열려 있고 마운트되어 있습니다 noexec
.
답변2
내 생각엔 #!
해당 줄에 이상한 문자가 있는 것 같습니다. ASCII Nul
또는 기타 인쇄할 수 없는 문자, 백스페이스 키 등이 있을 수 있습니다. 일부 쉘에는 MS-DOS/Windows 2바이트(캐리지 리턴 및 줄 바꿈) 줄 끝 표시에 문제가 있습니다. 최신 편집자는 파일을 검사하고 Unix 스타일(개행) 줄 끝이 있는지 또는 Windows 스타일(Mac 스타일일 수도 있음) 텍스트 파일이 있는지 확인할 수 있습니다. 어쩌면 편집자가 혼란스러워서 Windows 텍스트 파일을 작성했을 수도 있습니다.
이로 인해 커널은 지정된 "실행 파일"을 찾을 수 없으며 존재하지 않는 "실행 파일"을 실행할 수 없다고 주장합니다.