繁体   English   中英

当我在其中导出变量时,Shell脚本不起作用

[英]Shell script doesn't work when I export a variable inside it

我有一个名为installscript的脚本,需要更改PATH变量。

BuildScript文件具有以下代码:

export PATH+=:foo/bar/
./installscript

运行./BuildScriptsource 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/scriptsource /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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM