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

SH File not setting ENV variables (Mac OS X)

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

sh set_env.sh

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

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

改用source命令:

source set_env.sh

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


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

您可以用这个

修改主目录中的 ~/.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