如何在不同的目录中执行脚本?

UAd*_*ter 81 bash

我试过这个

./home/user/scripts/someScript

但它不起作用

无此文件或目录

有任何想法吗?

Lek*_*eyn 95

命令中的前导点表示“相对于当前目录”。删除它,它将引用“目录someScript中的文件/home/user/scripts

/home/user/scripts/someScript
Run Code Online (Sandbox Code Playgroud)

如果您收到“权限被拒绝”,那可能是因为您没有足够的权限来访问其他用户目录中的文件,或者是因为该文件不可执行。要使其可执行,请运行:

chmod +x /home/user/scripts/someScript
Run Code Online (Sandbox Code Playgroud)


nai*_*nza 49

如果您的脚本需要访问运行它的同一文件夹中的资源,并且您已将其指定为相对路径,那么您的脚本将中断。

我总是在cd $(dirname $0)脚本的头部添加一个,这样包含脚本的文件夹将是根文件夹。


Bru*_*ira 9

去除那个 .

如果您使chmod 755 <nameofscript>脚本可执行以运行它,您只需要键入脚本的路径。

当您看到./script正在使用它时,它会告诉 shell 脚本位于您正在执行它的同一目录中。要使用完整路径,请键入sh /home/user/scripts/someScript.


小智 6

我尝试了很多方法,这对我来说效果很好:

(cd ~/user/scripts/; ./someScript)
Run Code Online (Sandbox Code Playgroud)

我从这个答案中得到一些帮助。