Shell 变量不起作用

Shell 变量不起作用

我正在尝试通过变量启动一个程序,它读取run.sh正常,但是在尝试启动文件时遇到问题.jar

正常运行run.sh正常并且它启动了程序,如下所示。

问题是什么?

:~$ HAVEN=Desktop/Haven/run.sh
:~$ echo $HAVEN
Desktop/Haven/run.sh
:~$ $HAVEN
Error: Unable to access jarfile hafen.jar
:~$ cd Desktop/Haven
:~/Desktop/Haven$ ./run.sh
:~/Desktop/Haven$ 

答案1

听起来像是run.sh使用相对路径。运行时的当前工作目录~/~/ 不是 ~/Desktop/Haven

您可以通过cd进入脚本目录(位于 开头附近)来修复此问题run.sh,如下所示:

cd "$(dirname "$(readlink -f -- "$0")")"

或者,您可以让它指定 jar 的完整路径。

答案2

如果任何变量不起作用,您可以指定命令的二进制路径。

比如……如果您使用 cp 命令但不起作用,您可以提及 /bin/cp(此命令的二进制文件)。您可以根据需求以同样的方式在您的案例中使用。

相关内容