구성 파일에서 매개변수를 읽는 bash 파일을 만들고 싶습니다. Debian 기반 Linux에서는 다음과 같이 잘 작동합니다.
내 구성:
MYVARIABLE=12345
내.sh:
#!/bin/bash
source my.config
echo $MYVARIABLE
하지만 FreeBSD에서는 이것을 달성할 수 없습니다. 어떤 아이디어가 있나요?
답변1
오류나 수행한 작업을 제공하지 않았습니다. 이를 통해 우리는 다음과 같은 추측을 할 수 있습니다.
Bash는 기본적으로 설치되지 않습니다. 다음을 직접 추가해야 할 수도 있습니다.
pkg install bash
Debian과 마찬가지로 스크립트를 실행 가능하게 만들어야 합니다.
chmod +x my.sh
스크립트의 첫 번째 줄은 bash의 위치를 가리켜야 합니다. 기본적으로 위치가 없습니다
/bin
. 링크를 사용하여 작동하게 할 수 있지만 스크립트의 첫 번째 줄을 다음과 같이 변경하는 것을 선호합니다.#!/usr/bin/env bash source my.config echo $MYVARIABLE
위의 내용은 스크립트를 OS에 구애받지 않게 만듭니다. 또는 명시적인 경로를 사용할 수 있습니다.
#!/usr/local/bin/bash
source my.config
echo $MYVARIABLE
왜?
바라보다내 shebang으로 "#!/path/to/NAME" 대신 "#!/usr/bin/env NAME"을 사용하는 것이 더 나은 이유는 무엇입니까?