Shell 脚本在终端中执行,但不是从 shell 脚本文件中执行

Shell 脚本在终端中执行,但不是从 shell 脚本文件中执行

可能的重复:
如何使 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 执行文件中的命令而不是运行子进程。

相关内容