linux - 为什么脚本结束后导出的变量为空?

标签 linux bash ubuntu

我在 Linux shell 脚本中有一个简单的命令(比如 foo.sh)。我在里面这样做:

export INSTALL_DIR=/mnt/share/TEST_Linux

我运行脚本:

> sh foo.sh

完成后,我尝试获取变量,但值为空。

> echo $INSTALL_DIR

如果我直接键入命令,导出的变量将成为打开的终端窗口的全局变量。我正在使用 Ubuntu。

最佳答案

设置环境变量对于运行脚本的子 bash 进程是本地的。要实现您想要的效果,您需要像这样获取它:source foo.sh。这意味着它由您的主 bash 进程运行。然后,变量的设置将在脚本完成后保留。

关于linux - 为什么脚本结束后导出的变量为空?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6522255/

相关文章:

linux - 你能在linux系统上隐藏文件夹的 'date modified'时间吗?

linux - 警告构建使用导出符号的内核模块

狂欢 : space in path access

linux - 为我所有的测试文件运行程序

ruby-on-rails - 将 unicorn 和 nginx 用于基于 ruby​​ 2.0.0 的 rails 应用程序

linux - 在内核模块中查找目录

linux - VxWorks 终端连续读取变量

javascript - Ajax 请求运行 NodeJS 函数,该函数运行 bash 脚本

python - 网络驱动程序异常 : Message: connection refused

linux - 如何为文件夹和文件添加前缀?