shell bash替换或附加环境变量文件local.env

u91tlkcl  于 2022-12-13  发布在  Shell
关注(0)|答案(1)|浏览(154)

我有一个部署脚本,其中包含逗号分隔的环境变量,如下所示:
script=/deploy FOO=BAR,ABC=XYZ,ENV=PROD
并且有一个.env文件,该文件包含如下内容:

FOO=NOTBAR
ABC=XYZ
ENV=DEV

我试着创建一个bash脚本来解析script中的环境变量,并在.env文件中替换或追加它们(如果它们不存在于.env中)。如果KEY存在于.env中,则用新值替换它,其余部分保持原样。我试着用sed来做,但这太长了。

xwbd5t1u

xwbd5t1u1#

我能够做到这一点:

script=/deploy FOO=BAR,ABC=XYZ,ENV=PROD
          if [[ $input_script == *"="* ]]; then
            parsed=`echo $input_script | sed 's/.*deploy//'`
            IFS=', ' read -r -a array <<< $parsed
            for element in "${array[@]}"
            do
                new=`echo $element | cut -d'=' -f1`
                sed -i "" '/'"$new"'/d' .env
                echo $element >> .env
            done
          fi

相关问题