![Shell 脚本在终端中执行,但不是从 shell 脚本文件中执行](https://linux22.com/image/21029/Shell%20%E8%84%9A%E6%9C%AC%E5%9C%A8%E7%BB%88%E7%AB%AF%E4%B8%AD%E6%89%A7%E8%A1%8C%EF%BC%8C%E4%BD%86%E4%B8%8D%E6%98%AF%E4%BB%8E%20shell%20%E8%84%9A%E6%9C%AC%E6%96%87%E4%BB%B6%E4%B8%AD%E6%89%A7%E8%A1%8C.png)
可能的重复:
如何使 bash 脚本中的“导出”变量保留下来?
我在从文件执行脚本时遇到问题。当我在命令行中输入时
PATH=$PATH:/home/
然后PATH
适当改变。但是当我执行这个文件时:
#!/bin/sh
#provided by me
PATH=$PATH:/home/
echo "done"
exit 0
done
已打印但未PATH
更改。为什么会出现这种情况?
答案1
环境变量更改适用于当前进程和任何后续子进程,但不适用于父进程。因此,如果您运行脚本,它不会影响运行它的 shell 的环境变量。您需要source
使用内置 shell 的脚本.
。 IE
. /path/to/script
这会导致当前 shell 执行文件中的命令而不是运行子进程。