1
我在Snow Leopard上遇到了真正奇怪的問題。在我的終端,我寫了兩個劇本:OSX導出的環境變量未在子進程中繼承
第一:
#script-1.sh
export MY_VAR="This is my variable"
第二個腳本:
# script-2.sh, having +x permission
#!/bin/bash
echo $MY_VAR
在終端,如果我執行此腳本-1,然後調用腳本2作爲子進程,沒有輸出顯示:
$> source script-1.sh
$> echo $MY_VAR
This is my variable
$> . script-2.sh
This is my variable
$> ./script-2.sh
$>
任何想法這裏有什麼問題?我使用Cygwin在Windows上嘗試了相同的場景,並且它在預期的情況下工作 - 在OSX上,似乎子進程完全不知道$MY_VAR
。
我認爲'script-1.sh'沒有在子進程中執行。但我發現,下面的解決方法是:'$> sh -c「。script-1.sh && ./script-2.sh」' – lef 2012-04-23 12:37:03
您的解決方法與您的示例基本相同。請注意腳本1是否失敗,它不會執行腳本2。 – Kalicz 2012-04-23 13:52:03