替换文件中声明的环境变量的值
Replace value of an environment variable declared in a file
有一个文件env.sh
,它定义了环境变量:
$cat env.sh
export var1=1
export var2=2
我想用 3
替换文件中 var1
的值,这样
$cat env.sh
export var1=3
export var2=2
没有string/regexp匹配魔法有什么办法吗?
我阅读了很多关于 envsubst
的内容,但仍然无法弄清楚如何将其应用到任务中。
脚本中没有正则表达式:
#!/bin/bash
source env.sh
export var1=3
declare -p var1 > env.sh
declare -p var2 >> env.sh
输出到env.sh:
declare -x var1="3"
declare -x var2="2"
declare -x
与 export
同义。
只需使用可编写脚本的编辑器,例如 ed
:
$ cat env.sh
export var1=1
export var2=2
$ printf '/var1=/s/=.*/var1=3/\nw\n' | ed env.sh
28
28
$ cat env.sh
export var1=3
export var2=2
有一个文件env.sh
,它定义了环境变量:
$cat env.sh
export var1=1
export var2=2
我想用 3
替换文件中 var1
的值,这样
$cat env.sh
export var1=3
export var2=2
没有string/regexp匹配魔法有什么办法吗?
我阅读了很多关于 envsubst
的内容,但仍然无法弄清楚如何将其应用到任务中。
脚本中没有正则表达式:
#!/bin/bash
source env.sh
export var1=3
declare -p var1 > env.sh
declare -p var2 >> env.sh
输出到env.sh:
declare -x var1="3"
declare -x var2="2"
declare -x
与 export
同义。
只需使用可编写脚本的编辑器,例如 ed
:
$ cat env.sh
export var1=1
export var2=2
$ printf '/var1=/s/=.*/var1=3/\nw\n' | ed env.sh
28
28
$ cat env.sh
export var1=3
export var2=2