
저는 Linux Mint 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
따라서 나는 to에서 shebang을 변경하면 setup.sh
문제 #! /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