首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >OSX导出的环境变量在子进程中未继承

OSX导出的环境变量在子进程中未继承
EN

Stack Overflow用户
提问于 2012-04-23 19:18:58
回答 1查看 766关注 0票数 2

我在雪豹上遇到了非常奇怪的问题。在我的终端中,我写了两个脚本:

首先:

代码语言:javascript
复制
#script-1.sh
export MY_VAR="This is my variable"

第二个脚本:

代码语言:javascript
复制
# script-2.sh, having +x permission
#!/bin/bash
echo $MY_VAR

在终端中,如果我将script-1作为源,然后调用script-2作为子进程,则不会显示任何输出:

代码语言:javascript
复制
$> 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

EN

回答 1

Stack Overflow用户

发布于 2012-04-23 20:23:56

您确定没有在子进程中运行script-1.sh吗?我在10.6.8和10.7.3中尝试了你的例子,它工作正常。命令source script-1.sh. script-1.sh相同,它在相同的上下文中运行脚本。导出的变量是环境变量,它们总是复制到子进程中。

当我在script-1.sh文件中省略了export时,我能够重现与您相同的输出的唯一情况是。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/10279519

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档