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

配置文件能否被其他配置文件引用?Shell脚本报错问询

Shell配置文件引用与变量赋值错误修复

问题场景

我有多个包含Job的JobStream,计划创建一个通用配置文件(适用于所有JobStream)和每个Job对应的独立配置文件。想通过source命令让通用配置文件引用Job独立配置文件的内容,实现变量复用,但执行Shell脚本时出现错误。

相关文件内容

  1. Job_config_file(Job独立配置)
export NAME_JOB='PP_AAAR'
export log_dir="/data/workdir/AAAR/aaar/logs/"
export cluster_logs_dir="/hadoop/cluster_logs/AAAR/"
  1. test_general_config_file(通用配置文件)
source "/data/workdir/user/m292121/properties/test_job_config_file"

export TIMESTAMP=`date '+%Y%m%d_%H%M%S'`
export DT_INICIO=`date "%Y-%m-%d %H:%M:%S"`
export HOST_NAME=`hostname -s`
export DIR=$(pwd)
export ULTIMO_ERRO='EXECUÇÃO SEM ERROS'
export DATA_PROCESSAMENTO=`date '+%Y%m%d'`

export GF_NAME_JOB = $NAME_JOB
  1. sh_script(执行脚本)
#!/bin/bash

source "/data/workdir/user/m292121/properties/test_general_config_file"   

echo $GF_NAME_JOB

执行错误信息

sh test_shell.sh
/data/workdir/user/m292121/properties/test_general_config_file: line 10: export: `=': not a valid identifier

错误原因

Shell中变量赋值时=两边不能有空格,你在通用配置文件里写的export GF_NAME_JOB = $NAME_JOB,=前后的空格会让Shell把GF_NAME_JOB、=、$NAME_JOB当成三个独立的参数,导致export命令无法识别=这个参数,从而报错。

修复方案

把通用配置文件里的变量赋值行改成无空格的形式:

export GF_NAME_JOB=$NAME_JOB

验证结果

修改后重新执行脚本,就能正确输出PP_AAAR,实现从Job独立配置文件读取变量并赋值给通用配置文件变量的需求。


内容的提问来源于stack exchange,提问作者gfernandes

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.13 23:25:34