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

WSL2中source执行Bash脚本静默失败,但直接执行代码正常的问题求助

WSL2中source执行Bash脚本静默失败,但直接执行代码正常的问题求助

我碰到了一个挺棘手的问题,想请大家帮忙分析下原因:

我写了一段Bash脚本,主要功能是解析JSON配置文件来导出环境变量,同时定义了一个日志函数。这个脚本在原生Ubuntu 22.04LTS环境下用. funcs.sh(也就是source命令)执行完全没问题,但到了Windows 11的WSL2里这么运行时,居然静默失效了——没有任何错误提示,但环境变量没被正确设置,日志函数也没创建出来。

但奇怪的是,如果我把脚本里的核心代码行直接复制粘贴到WSL2的bash命令行里执行,一切又都正常工作,环境变量能正确导出,函数也能正常使用。

下面是我的脚本内容(通过. funcs.sh调用):

#!/bin/bash
. mode.sh
# load config JSON as env vars (export)
eval $(cat config.json | jq -r ".${MODE}"' | to_entries | .[] | "export " + .key + "=\"" + .value + "\""')
# DELIM is set here because it is static in daily_import_header.sql:
export "DELIM"=";"
# logging to graylog server
log() {
        APPNAME="SPAR"
        # assumes LOG_SERVER to be set by eval
#       if [ "${LOG_SERVER}" eq "" ]; then
#       ...(后续代码省略)
}

备注:内容来源于stack exchange,提问作者Gnudiff

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.17 07:50:32