【发布时间】:2016-01-22 18:37:50
【问题描述】:
我有一个 shell 脚本,它导出了构建软件项目所需的几个环境变量(Android 密钥库位置)。
通常当我调用脚本时,环境变量会被导出,IDE 可以访问它们,Bash 终端上的导出命令也是如此。
由于我安装了Mac OS X El Capitan,Bash命令设置的环境变量
export FOO="bar"
当我尝试访问它们时不会返回
echo $FOO
在外壳上。相反,我只返回一个空行。
如果我在 shell 脚本中使用 printenv,则会显示 $F00。
当我从现金终端拨打printenv 时,$FOO 不见了。
我了解到 OS X“El Capitan”更新修复了一些与 bash 有关的安全问题。会不会是这个原因?
【问题讨论】:
-
所以你启动 Terminal.app,输入
export FOO="bar"然后echo $FOO什么也没有产生? -
不,可以,但如果
export $F00在shell 脚本中,则环境变量在脚本之外不可用。 -
它对应用程序不可用,例如?如果是这样,这是众所周知的,并且在本网站(不在主题范围内)和apple.stackexchange.com(在主题范围内)上都有介绍。
-
我正在使用环境变量将 android 密钥库位置传递给 Android Studio IDE。它曾经工作得很好,但在更新到 El Capitan 之后它就不再工作了。我不知道这些变量是否可用于其他应用程序,但我能够在更新之前通过 bash 终端应用程序获取变量,现在我不能。
-
@TillKrempel:你意识到你一直在
FOO(带有字母“哦”)和F00(带有零)之间交替,不是吗?如果你在这里犯了这个错误,也许你是在你的脚本或 shell 中犯的。
标签: macos bash shell environment-variables osx-elcapitan