如何在当前目录以外的目录中执行脚本?

如何在当前目录以外的目录中执行脚本?

我尝试用以下命令执行脚本:

./home/user/scripts/someScript

但它不起作用:

No such file or directory

有任何想法吗?

答案1

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

/home/user/scripts/someScript

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

chmod +x /home/user/scripts/someScript

答案2

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

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

答案3

去除.

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

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

答案4

我尝试了很多方法并且效果很好:

(cd ~/user/scripts/; ./someScript)

我得到了一些帮助这个答案

相关内容