为什么我的简单 bash 脚本无法运行?

为什么我的简单 bash 脚本无法运行?

我只是在 CentOS 6.2 上编写了一个简单的 Bash 脚本:

[root@hadoop1 ~]# vi bash_startup

#! /bin/bash
export r=1

返回命令行:并使用 ./bash_startup 运行

[root@hadoop1 ~]# echo $r

[root@hadoop1 ~]#

echo$r没有给出结果,为什么?

答案1

仅当您以如下方式调用脚本时,对脚本中的环境变量的更改才会影响调用 shell:

. ./script.sh

或者:

source ./script.sh

不是:

bash ./script.sh

或者:

./script.sh

这是因为前两种方式在当前 shell 中运行脚本,而后两种方式启动子 shell,并且环境变量的更改不会从子 shell 向上传播。

相关内容