我创建了一个引用本地目录中文件的脚本
当在同一目录中执行时,这似乎工作正常,但如果从其他地方执行,/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")") ...