替换 bashrc 中的环境变量

use*_*721 1 bash

我可以从远程系统中检索环境变量列表,它会像这样打印出环境变量:

some command | awk -F ": " '/SOME_VAR/ {print "export "$1"="$2}'
Run Code Online (Sandbox Code Playgroud)

会给

export SOME_VAR_ABC=999
export SOME_VAR_XYZ=123
export SOME_VAR_TUV=654
etc
Run Code Online (Sandbox Code Playgroud)

有没有办法然后我可以循环并直接将这些写入我的 bashrc,但如果变量已经存在,则覆盖它?

mtn*_*ezm 5

也许避免从远程机器检索的变量重复的更简洁的方法(这让我认为它们的值可能会随着时间的推移而改变)是将它们写到一个单独的文件中.bashrc,然后将该文件加载到您的.bashrc文件中。

例如,让我们称之为~/.custom_variables。要将从远程机器检索到的变量放入此文件,您可以运行以下命令:

some command | awk -F ": " '/SOME_VAR/ {print "export "$1"="$2}' > ~/.custom_variables
Run Code Online (Sandbox Code Playgroud)

然后你只需要将它添加到你的.bashrc

if [ -f ~/.custom_variables ]; then
  source ~/.custom_variables
fi
Run Code Online (Sandbox Code Playgroud)

这样,每次运行该命令时,文件~/.custom_variables都会被覆盖,因此您不必担心重复条目。