我有一个名为installscript
的脚本,需要更改PATH变量。
BuildScript
文件包含以下代码:
export PATH+=:foo/bar/
./installscript
正在运行./BuildScript
或source BuildScript
失败并显示installscript
导出PATH变量后,我发了NewScript
并从中调用了BuildScript
export PATH+=:foo/bar/
./BuildScript.sh
正在运行的源代码NewScript
。
我不明白为什么单独运行BuildScript
不会起作用。
答案 0 :(得分:0)
这可能是因为您不应该在PATH
中使用相对目录路径。相对路径是不以斜杠开头的路径名。尝试
PATH+=:/path/to/foo/bar # Use absolute path starting with /
而不是调用./script.sh
但script.sh
的脚本,让系统找到PATH
的程序。
另请注意,执行脚本无法更改父级的环境。如果您需要,脚本必须来源 . /path/to/script
或source /path/to/script
。
答案 1 :(得分:0)
PATH=$PATH:/path/to/foo/bar
. BuildScript.sh
# or
cd /path/to/foo/bar
. ./BuildScript.sh