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