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


51

我试过了

./home/user/scripts/someScript

但这不起作用

没有相应的文件和目录

有任何想法吗?


2
显然没有这样的文件或目录。所以你给出了错误的路径。那里的点并不意味着“执行”。这只是路径的一部分。在shell中,您通常键入要执行的文件或命令(实际上也是文件):)
Pithikos 2011年

摆脱该开始时间,然后重试。另外,〜/ scripts / someScript也可以使用。也请记住“ qoutes,以及exec程序($ man exec)
2014年

Answers:


61

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

/home/user/scripts/someScript

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

chmod +x /home/user/scripts/someScript

35

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

我总是在cd $(dirname $0)脚本的开头添加a ,因此包含脚本的文件夹将成为根文件夹。


6

去除 .

如果使scrip可执行文件chmod 755 <nameofscript>运行,则只需键入脚本路径。

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


sh /path/to/file与有所不同/path/to/file。与链接的sh运行。/bin/sh/bin/dash
Lekensteyn

只需在网上看到的示例中弄清楚一点,通常您会看到sh ./somescript它们也可以键入为“ sh / path / to / script / scriptitself”。
布鲁诺·佩雷拉
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.