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

use*_*677 3 macos terminal sh bin

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

sh set_env.sh

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

回显$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
Run Code Online (Sandbox Code Playgroud)

Rus*_*nov 6

使用source命令代替:

source set_env.sh
Run Code Online (Sandbox Code Playgroud)

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


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