Env -0转储环境.但是怎么装呢



linux命令行工具env可以转储当前环境

由于有一些特殊字符,我想使用env -0(以0字节结束每个输出行,而不是换行符)。

但是如何再次加载这个转储?

Bash Version: 4.2.53

不要使用env;使用declare -px,它以可重新执行的形式输出导出变量的值。

$ declare -px > env.sh
$ source env.sh

这也为您提供了保存导出变量的可能性,env没有访问权限:只需使用declare -p(去掉-x选项)。


例如,如果您编写foo=$'hellonworld', env将生成输出

foo=hello
world

declare -px产生输出

declare -x foo="hello
world"

如果您想加载env的导出,您可以使用从文件中设置环境变量:

env > env_file
set -o allexport
source env_file
set +o allexport

但是如果你碰巧用-0导出,它会使用(from man env):


0,零以0字节结束每个输出行,而不是换行

因此,您可以使用0作为字符分隔符来循环文件,以标记行结束(更多描述请参见IFS=在此bash循环中做什么:cat file | while IFS= read -r line; do … done):

env -0 > env_file
while IFS= read -r -d $'' var
do
   export "$var"
done < env_file

相关内容

  • 没有找到相关文章

最新更新