无法使用 Bash 脚本设置环境变量

man*_*ans 2 command-line bash scripts environment-variables

我想从我编写的 bash 脚本中设置一个环境变量。所以我创建了一个 bash 脚本并将其命名为set.sh. 其内容如下:

#!/bin/bash

export DEV_SRC="/home/m/mydata/sourecCode"
echo $DEV_SRC
Run Code Online (Sandbox Code Playgroud)

当我运行这个脚本时,输出是

/home/m/mydata/sourecCode
Run Code Online (Sandbox Code Playgroud)

但是,如果我在运行上述脚本的同一终端上运行此代码,

echo $DEV_SRC
Run Code Online (Sandbox Code Playgroud)

我看不到任何值,因此我认为该值未导出。

为什么不导出值?

小智 5

默认情况下bash创建当前环境的副本,在此环境中执行脚本,然后销毁副本。

要在当前环境中执行脚本,您应该使用以下语法:

. /home/m/mydata/sourecCode
echo $DEV_SRC
Run Code Online (Sandbox Code Playgroud)

或者

source /home/m/mydata/sourecCode
echo $DEV_SRC
Run Code Online (Sandbox Code Playgroud)