[英]Shell script doesn't work when I export a variable inside it
我有一个名为installscript
的脚本,需要更改PATH变量。
BuildScript
文件具有以下代码:
export PATH+=:foo/bar/
./installscript
运行./BuildScript
或source BuildScript
失败,并出现installscript
错误
我制作了一个NewScript
并在导出PATH变量后NewScript
调用BuildScript
export PATH+=:foo/bar/
./BuildScript.sh
运行源NewScript
作品。
我不明白为什么仅运行BuildScript
无法起作用。
可能是因为您不应该在PATH
使用相对目录路径。 相对路径是不以斜杠开头的路径名。 尝试
PATH+=:/path/to/foo/bar # Use absolute path starting with /
而是不要使用./script.sh
而是使用script.sh
调用脚本,并让系统沿着PATH
查找程序。
另请注意,执行脚本不能更改父级环境。 如果你需要的是,脚本必须进行采购 . /path/to/script
. /path/to/script
或source /path/to/script
。
PATH=$PATH:/path/to/foo/bar
. BuildScript.sh
# or
cd /path/to/foo/bar
. ./BuildScript.sh
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.