&引用;没有这样的文件或目录;使用$BASH_源变量时
使用&引用;没有这样的文件或目录;使用$BASH_源变量时,bash,ubuntu,Bash,Ubuntu,使用$BASH\u SOURCE 当我在Ubuntu中使用sudo./install.sh运行脚本时,我得到以下错误/home/parallels/Desktop/app/install.sh:没有这样的文件或目录 它的接缝就像是dirname前面的“.”(点)导致了问题 在运行脚本之前,我还尝试使用了sudo su 有关脚本的部分如下所示: repo_dir="`dirname "$BASH_SOURCE[0]" `/home/parallels/Desktop/
$BASH\u SOURCE
当我在Ubuntu中使用sudo./install.sh
运行脚本时,我得到以下错误/home/parallels/Desktop/app/install.sh:没有这样的文件或目录
它的接缝就像是dirname前面的“.”(点)导致了问题
在运行脚本之前,我还尝试使用了sudo su
有关脚本的部分如下所示:
repo_dir="`dirname "$BASH_SOURCE[0]" `/home/parallels/Desktop/app"
source $repo_dir/install.sh
我应该提到的另一件事是,它似乎对其他人有效,所以我想知道这是我运行脚本的方式还是脚本的放置方式
任何帮助都将不胜感激非常感谢您的帮助,非常感谢。 有一个来自开发者的更新,显然和我有同样的问题。这条新线看起来是这样的,它可以工作:
repo_dir=“
dirname”$BASH_SOURCE[0]”,`/../../../../
来源“$repo_dir/install.sh”`
再次感谢您。如果您使用
${BASH_SOURCE[0]}
该怎么办?请尝试运行该文件,因为它可能是两个或三个BASH gotchas的受害者(引用backicks、数组索引语法、带括号的globbing)。除此之外,文件的实际路径是什么?$BASH\u SOURCE
的值是多少?你可以回答这个问题。我还刚刚编辑了它,以修复格式和标记。顺便说一句,欢迎来到SO!看看。嗨,温德丽亚和路鸮谢谢你的回答。我刚刚尝试使用${BASH_SOURCE[0]},但不幸的是,结果是一样的@wjandrea使用sudo运行的脚本文件的确切路径是:“/home/parallels/Desktop/scanner/contrib/system scripts/development/development\u setup.sh”(我在这个路径中运行的是“sudo/development\u setup.sh”),其值为“$BASH\u SOURCE”,您是指“repo\u dir”的路径吗?此路径为:“/home/parallels/Desktop/scanner”如果您使用/development\u setup.sh
(带或不带sudo
)运行文件,则$BASH\u SOURCE
将为“/development\u setup.sh”,其dirname将为“”,因此这看起来像是我预期的结果。你希望得到什么?你说你正在运行sudo/development\u setup.sh
,你是说sudo/development\u setup.sh
?(请注意前面的
,如您在提问的其他部分中所述)。