使用sudo时,Mac OS X没有环境变量

时间:2018-05-30 11:20:26

标签: bash macos environment-variables nativescript macos-high-sierra

我正在尝试在mac os high sierra上为nativescript设置开发环境。

我安装了所有需要的工具(包含android sdk,jdk)。并使用.bash_profile,.bash_rc为它们添加了一个路径(ANDROID_HOME,JAVA_HOME)。

如果tns doctor检查环境变量是否设置 - 这一切都很好。

但是当我运行sudo tns医生时,它说ANDROID_HOME和JAVA_HOME并没有配置。我认为这可能是一个mac问题而不是nativescript问题。

有什么想法吗?

2 个答案:

答案 0 :(得分:4)

来自man sudo

  

-E
  -E(保留环境)选项向安全策略指示用户希望保留其现有环境变量。如果指定了-E选项且用户没有保留环境的权限,则安全策略可能会返回错误。

如果您希望变量保留其值,请致电sudo -E tns doctor。您也可以调用sudo "ANDROID_HOME=$ANDROID_HOME" "JAVA_HOME=$JAVA_HOME" tns doctor来仅导出这两个变量。

答案 1 :(得分:2)

您需要使用-E

> export VAR=hello
> sudo su
Password:
> env | grep VAR
> exit
> sudo -E su
> env | grep VAR
VAR=hello
相关问题