왜?

왜?

구성 파일에서 매개변수를 읽는 bash 파일을 만들고 싶습니다. Debian 기반 Linux에서는 다음과 같이 잘 작동합니다.

내 구성:

MYVARIABLE=12345

내.sh:

#!/bin/bash

source my.config
echo $MYVARIABLE

하지만 FreeBSD에서는 이것을 달성할 수 없습니다. 어떤 아이디어가 있나요?

답변1

오류나 수행한 작업을 제공하지 않았습니다. 이를 통해 우리는 다음과 같은 추측을 할 수 있습니다.

  1. Bash는 기본적으로 설치되지 않습니다. 다음을 직접 추가해야 할 수도 있습니다.

    pkg install bash

  2. Debian과 마찬가지로 스크립트를 실행 가능하게 만들어야 합니다.

    chmod +x my.sh

  3. 스크립트의 첫 번째 줄은 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"을 사용하는 것이 더 나은 이유는 무엇입니까?

관련 정보