SH文件未设置ENV变量(Mac OS X)

时间:2016-12-14 15:17:10

标签: macos terminal sh bin

我有一个文件set_env.sh,我使用以下命令在终端中运行:

  

sh set_env.sh

代码运行,但未设置变量。我正在检查

  

echo $ EMAIL_SERVER

set_env.sh

#!/bin/sh

echo email Address
read y

echo email password?
read x

export EMAIL_SERVER='smtp.gmail.com'
export EMAIL_PORT=587
export EMAIL_DOMAIN='domain.com'
export EMAIL_AUTHENTICATION='plain'
export EMAIL_ENABLE_STARTTLS_AUTO=true
export EMAIL_USERNAME=$y
export EMAIL_PASSWORD=$x

2 个答案:

答案 0 :(得分:2)

改为使用source命令:

source set_env.sh

该命令执行当前shell上下文中的脚本,而不是通过单独的shell进程调用:sh set_env.sh(环境变量在新的sh进程中设置与当前流程隔离开来。)

顺便说一句,如果您愿意,可以使用点(.)代替source

答案 1 :(得分:0)

您可以使用此

修改主目录中的〜/ .bash_profile文件
export EMAIL_SERVER='smtp.gmail.com'
export EMAIL_PORT=587
export EMAIL_DOMAIN='domain.com'
export EMAIL_AUTHENTICATION='plain'
export EMAIL_ENABLE_STARTTLS_AUTO=true
export EMAIL_USERNAME=$y
export EMAIL_PASSWORD=$x