illiterate Asked: 2018-02-16 01:00:58 +0800 CST2018-02-16 01:00:58 +0800 CST 2018-02-16 01:00:58 +0800 CST 如何可靠地将 /proc/pid/environ 转换为 env 命令的参数? 772 如何可靠地将 /proc/pid/environ 转换为 env 命令的参数? IFS=$'\n' ; env -i $(xargs -0n1 -a /proc/$$/environ)仅当所有环境变量都没有换行符时才有效。 IFS=$'\0'不能在 bash 和 dash 中工作。 有没有其他可用的方式(包括任何其他的外壳方式)? bash shell 1 个回答 Voted Best Answer muru 2018-02-16T01:09:53+08:002018-02-16T01:09:53+08:00 在 bash 中,您可以从environ文件中的条目创建一个数组,并将数组元素用作以下参数env: mapfile -d '' envs < /proc/$$/environ env -i "${envs[@]}" ... 换行符似乎可以正常工作: $ foo=$'a\nb' bash $ mapfile -d '' envs < /proc/$$/environ $ printf '|%s|\n' "${envs[@]}" |foo=a b| |LC_MEASUREMENT=en_GB.UTF-8| |SSH_CONNECTION=127.0.0.1 33066 127.0.0.1 22| ...
在 bash 中,您可以从
environ
文件中的条目创建一个数组,并将数组元素用作以下参数env
:换行符似乎可以正常工作: