为什么?

为什么?

我想制作一个从配置文件中读取参数的 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
    

上述内容将使您的脚本与操作系统无关。或者您可以使用显式路径:

#!/usr/local/bin/bash

source my.config
echo $MYVARIABLE

为什么?

为什么使用“#!/usr/bin/env NAME”而不是“#!/path/to/NAME”作为我的 shebang 更好?

相关内容