我的.bash_profile中有以下变量,我可以使用echo命令在mac终端上看到,但是在记录相同时,我无法在节点process.env($ PATH变量除外)中看到这些变量。我正在运行“sudo grunt taskName”来启动我的grunt构建任务,并尝试访问gruntfile.js中的process.env。我只能看到$ PATH变量和一些root用户信息。任何线索都会有所帮助。
export MVN_HOME=/Users/myuser/Documents/apache-maven-3.3.9
export ANT_HOME=/Users/myuser/Documents/apache-ant-1.10.3
export JAVA_HOME=/Library/Java/JavaVirtualMachines/jdk1.8.0_161.jdk/Contents/Home/
CATALINA_HOME=/Users/myuser/Documents/apache-tomcat-8.0.52
export CATALINA_HOME
export NODE_ENV=dev
export PATH=$PATH:$CATALINA_HOME/bin
export PATH=$PATH:$MVN_HOME/bin:$ANT_HOME/bin:$JAVA_HOME
PATH="/Library/Frameworks/Python.framework/Versions/2.7/bin:${PATH}"
export PATH
答案 0 :(得分:1)
将这些设置放在单独的文件中,以便您可以从各种脚本访问它。
我还建议重构脚本,使其成为有效的sh
脚本。特别是,将export
放在作业上是不可移植的。所以这样的事情就会进入,比如$HOME/bin/nodestuff
:
MVN_HOME=/Users/myuser/Documents/apache-maven-3.3.9
ANT_HOME=/Users/myuser/Documents/apache-ant-1.10.3
JAVA_HOME=/Library/Java/JavaVirtualMachines/jdk1.8.0_161.jdk/Contents/Home/
CATALINA_HOME=/Users/myuser/Documents/apache-tomcat-8.0.52
NODE_ENV=dev
export MVN_HOME ANT_HOME CATALINA_HOME NODE_ENV
PATH=$PATH:$CATALINA_HOME/bin:$MVN_HOME/bin:$ANT_HOME/bin:$JAVA_HOME
PATH="/Library/Frameworks/Python.framework/Versions/2.7/bin:${PATH}"
# no need to export PATH, your shell already does that
在你的.profile
中你可以放
. $HOME/bin/nodestuff
并在sudo
命令行中
sudo -s <<<". $HOME/bin/nodestuff; grunt taskName"