我想制作一个从配置文件中读取参数的 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
上述内容将使您的脚本与操作系统无关。或者您可以使用显式路径:
#!/usr/local/bin/bash
source my.config
echo $MYVARIABLE
为什么?
看为什么使用“#!/usr/bin/env NAME”而不是“#!/path/to/NAME”作为我的 shebang 更好?