我有一个 shell 脚本,它是一个用于打开 .exe 文件的 wine 命令,它如下所示:
#!/bin/bash
wine wow.exe -opengl
它的唯一目的是运行该 .exe 文件。只要我双击该脚本,它就可以工作。脚本的位置与 .exe 文件相同。我想要的是有一个桌面应用程序,即我可以固定在 Dock 上的图标,它可以执行此 shell 脚本。我的桌面应用程序文件如下所示:
[Desktop Entry]
Comment=WoW
Exec=/home/siegmeyer/Documents/WoW/WoW.sh
Icon=/home/siegmeyer/Documents/WoW/WoW.png
Terminal=false
Type=Application
StartupNotify=false
Name[en_US]=WoW
我可以成功地将应用程序固定到我的 Dock 上,图标甚至会显示出来,但是当我单击应用程序时,什么都没有发生,光标卡在无限加载图标上。我遗漏了什么吗?
答案1
为了确保脚本在正确的目录中查找可执行文件,你可以将调用更改为
wine "$(realpath "$(dirname "$0")")/wow.exe" -opengl
这会将脚本(以及 exe)的绝对路径插入到调用中。对于不包含空格的路径,即使没有引号也可以工作,但我建议保留它们以防移动目录。