linux命令行工具env
可以轉儲當前環境。env-dump環境。但如何加載它?
由於我想使用一些特殊字符env -0
(每個輸出行用0字節結束,而不是換行)。
但是如何再次加載這個轉儲?
猛砸版本:4.2.53
linux命令行工具env
可以轉儲當前環境。env-dump環境。但如何加載它?
由於我想使用一些特殊字符env -0
(每個輸出行用0字節結束,而不是換行)。
但是如何再次加載這個轉儲?
猛砸版本:4.2.53
不要使用env
;使用declare -px
,它以可以重新執行的形式輸出導出變量的值。
$ declare -px > env.sh
$ source env.sh
這也給你節省非 -exported變量以及的可能性,這env
沒有訪問:只使用declare -p
(丟棄-x
選項)。
例如,如果你寫foo=$'hello\nworld'
,env
產生輸出
foo=hello
world
而declare -px
產生輸出
declare -x foo="hello
world"
是的,即使換行符在變量中也可以工作。謝謝。 – guettli
如果要加載的env
出口可以使用什麼是Set environment variables from file描述:
env > env_file
set -o allexport
source env_file
set +o allexport
但是,如果你碰巧有-0
出口它使用(從man env
):
-0,--null
端與0字節Rath的每條輸出線呃比換行符
所以,你可以循環使用,通過作爲0
字符分隔符的文件,標誌着該行的端部(What does IFS= do in this bash loop: cat file | while IFS= read -r line; do … done
更多說明):
env -0 > env_file
while IFS= read -r -d $'\0' var
do
export "$var"
done < env_file
你是什麼意思與'load'? – hek2mgl
@ hek2mgl「load」我的意思是在不同的shell中設置這些變量。 – guettli