저는 리눅스 민트 19.03을 사용하고 있습니다.
설치 쉘 스크립트 파일이 있습니다 setup.sh
../setup.sh
muyustan@mint:~/Downloads/quartusExtracted$ ./setup.sh
bash: ./setup.sh: /bin/env: bad interpreter: No such file or directory
의 shebang setup.sh
:
#!/bin/env bash
나는 Linux 세계를 처음 접했기 때문에 이러한 것들에 대한 이해가 매우 좁습니다.
/bin/env bash
정확한 bash
경로를 제공하는 대신 을 사용하는 것은 "환경 변수를 검색하여 찾으려고 노력하는 것"과 같다는 것을 알고 있습니다 bash
. /bin
디렉토리를 보면 env
그러한 파일이 없다는 것을 알 수 있습니다.
muyustan@mint:/usr/bin$ ll /bin | grep "env"
lrwxrwxrwx 1 root root 6 Mar 21 14:35 open -> openvt*
-rwxr-xr-x 1 root root 18872 Jan 22 2018 openvt*
반품,
muyustan@mint:~/Downloads/quartusExtracted$ which bash
/bin/bash
setup.sh
그래서 저는 the에서 shebang을 변경하면 #! /bin/bash
문제가 해결될 것이라고 생각합니다(시도해본 적은 없습니다). 하지만 이는 그다지 직관적이지 않은 것 같습니다. 왜냐하면 만약 그렇다면 저는 스스로에게 묻습니다.
"이 애플리케이션(Quartus 13.1)의 개발자가 실수를 했나요?"라는 질문을 받으면 내 시스템에 문제가 있다고 생각하게 됩니다.
그렇다면 문제는 왜 이런 일이 발생하는가입니다.
감사해요.
답변1
시스템에는 아무런 문제가 없습니다. 단지 잘못된 경로를 사용하고 있을 뿐입니다 env
. 적어도 Linux 시스템에서는 일반적으로 다음 대신 env
바이너리가 위치합니다 ./usr/bin
/bin
$ type env
env is /usr/bin/env
따라서 스크립트는 /bin/env
존재하지 않는 것을 사용하도록 시스템에 지시하고 있으며 이것이 바로 해당 오류가 발생하는 이유입니다. 올바른 shebang으로 변경하면 완료됩니다.
#!/usr/bin/env bash