我有一个文件set_env.sh,我使用以下命令在终端中运行:
sh set_env.sh
代码运行,但未设置变量。我正在检查
echo $ EMAIL_SERVER
#!/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
答案 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