bash 脚本本地路径依赖?

bash 脚本本地路径依赖?

我创建了一个引用本地目录中文件的脚本

当在同一目录中执行时,这似乎工作正常,但如果从其他地方执行,/home/user/script.sh则它会中断。

我尝试添加一个变量来获取其工作路径,但似乎仍然有问题。我该如何解决这个问题?

path=`dirname "$(readlink -f "$0")"` ...

答案1

在脚本中,包含一条cd语句,将当前目录设置为脚本所需文件所在的目录。例如,如果您的文件位于文件夹“/home/user/Documents”中,则在脚本中实际需要查找文件的命令之前添加以下行:

cd "/home/user/Documents"

(如果路径名包含空格或其他特殊字符,则需要加引号)。

这可能是

cd $path

如果您设法通过变量设置工作目录。要通过您提议的结构实现此操作,请使用命令替换,即 $(command)。然后,命令的输出将分配给一个字符串,然后您可以将其分配给变量,即:

path=$(dirname "$(readlink -f "$0")") ...

相关内容