
나는 그 줄을 포함하면
#!/bin/bash
내 파일 시작 부분에서 바로 실행할 수 있는 bash 스크립트로 인식됩니다.
file.sh
대신에
sh file.sh
하지만 내 경우에는 give file.sh
와 같은 것을 제공합니다 . 왜 그런 겁니까?test.sh
test.sh: command not found
업데이트
을 사용해야 한다는 것을 알았습니다 ./
. 하지만 어쨌든 현재 디렉토리에서 볼 것이라고 생각 했습니까?
./test.sh
답변1
먼저 파일이 실행 가능한지 확인해야 합니다.
chmod +x file.sh
그런 다음 실행하려면 PATH(예: 실행할 파일을 찾을 때 OS가 검색하는 파일 디렉터리 중 하나)에 넣거나 로 찾을 수 있거나 echo $PATH
다음을 입력해야 합니다.
./file.sh
그냥 입력하는 것보다 file.sh
.
file.sh
PATH에 있으면 간단히 입력할 수 있습니다 . 권장합니다. 좋은 곳은 에 있습니다 ~/bin
. 해당 폴더가 없으면 생성하고 Ubuntu에서 로그인할 때 해당 폴더가 경로에 추가됩니다.
답변2
현재 디렉토리가 PATH에 없기 때문에 ./file.sh로 시작해야 합니다.
이것이 충분하지 않다면, frabjous가 제안하는 것을 놓쳤기 때문에, 다음 과 같이 chmod a+x
shebang으로 시작하는 프로그램을 시작해야 합니다.#!/bin/bash
bash file.sh
~ 아니다
sh file.sh
sh가 /bin/bash에 대한 심볼릭 링크인 경우에도 마찬가지입니다.
쉘은 호출된 방법을 확인하고 sh
호환 모드에서 작동하도록 호출될 수 있으므로 bash file.sh
.
그것은 당신의 문제가 아니었지만 이러한 미묘한 차이를 모른다면 문제가 될 수도 있습니다.