我有一个脚本存储在嵌套在其他目录深处的特定目录中。
a/long/path/to/the/script.sh
我从桌面创建了到该脚本的硬链接,因此可能更容易访问。
但是,在执行桌面硬链接时,脚本中编程的其他文件的路径将不起作用。
我现在收到“没有这样的文件或目录。”错误。
我不想为这些文件创建额外的符号链接,因为它看起来很混乱。
我不知道该怎么办,请帮忙。
答案1
如果脚本使用相对路径来定位文件和/或目录,则其当前工作目录必须正确才能找到这些文件和/或目录。
您可以使用命令更改当前工作目录cd
。如果文件中的第一个命令是cd
将目录更改为脚本期望执行的绝对路径的命令,则脚本中后面的路径将是正确的。
例如:
#!/bin/bash
cd /some/path/where/we/expect/to/be || exit 1
# (rest of script here)
这将在脚本的其余部分运行之前更改目录(如果不可能的话,则提前退出脚本)。
这样做还有一个额外的好处,即您可以将脚本放置在您认为方便保存的任何位置。
解决此问题的另一种方法是将脚本中的所有路径更改为绝对路径。