You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

能否在Bash中加载文件内容为变量?跨脚本导入变量实现方法

如何在Bash中加载配置文件内容为变量并实现类似Python的导入功能

没问题,这两个需求在Bash里都能轻松实现,我结合你给的示例一步步说明:

一、将文件内容加载为Bash变量

假设你的配置文件config.conf内容如下(调整为每行一个键值对更易处理):

server = xxxx
port = 8080
user = admin

方法1:预处理后使用source(推荐规范格式)

Bash的变量赋值要求等号前后不能有空格,所以如果把配置文件改成标准的Bash赋值格式:

server=xxxx
port=8080
user=admin

那直接在终端或脚本里运行:

source config.conf
# 或者等价的简化写法:. config.conf

执行后就能直接使用$server、$port这些变量了,比如输入echo "Hi $server"就会输出Hi xxxx。

方法2:循环读取并处理带空格的配置

如果不想修改原配置文件的格式(保留key = value的空格),可以用循环逐行读取并处理空格:

while IFS='=' read -r key value; do
    # 去掉键和值前后的多余空格
    key=$(echo "$key" | xargs)
    value=$(echo "$value" | xargs)
    # 将键值对赋值为变量(加export可让子进程也能访问)
    export "$key"="$value"
done < config.conf

执行这段代码后,同样可以直接调用$server等变量。

二、在另一Bash脚本中导入配置(类似Python的import)

实现逻辑和终端里的操作一致,只需要在目标脚本中加入加载配置文件的命令即可。

比如你的脚本script.sh内容如下:

# 加载同目录下的配置文件(路径根据实际存放位置调整)
. ./config.conf
# 或者用 source ./config.conf

# 现在就可以像使用本地变量一样调用配置里的内容了
echo "Hi $server"
echo "Listening on port $port"
echo "Logged in as $user"

运行脚本时,直接执行:

bash script.sh

就能看到输出包含配置文件里的变量值了。

注意事项

  • 如果配置文件和脚本不在同一目录,要使用绝对路径或者正确的相对路径(比如/home/yourname/config.conf)。
  • 确保配置文件来源安全,因为source会直接执行文件中的所有命令,和Python的import一样,要信任你导入的文件。

内容的提问来源于stack exchange,提问作者Rajesh Reddy B

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.19 08:50:08