我在Qt中开发了一个使用启动脚本myapp.sh
的应用程序。我创建了一个启动此脚本的.desktop文件,并设置:
命令:$PWD/myapp.sh
工作路径:$PWD
但是,$PWD
在我启动.desktop文件时打印我的主目录,导致尝试启动~/myapp.sh
而不是~/Development/build-directory/bin/myapp.sh
(该目录是.desktop文件所在的目录) 。为什么不正确地将工作目录设置为.desktop文件实际所在的位置?如何在不使用指定.desktop文件中的绝对路径的情况下解决此?
答案 0 :(得分:2)
$PWD
包含shell的当前working directory,它与.desktop文件的位置无关。您可以使用以下方法执行此操作:
Exec=$(dirname %k)/myapp.sh
从the spec,%k
是“桌面文件的位置是URI(例如,如果从vfolder系统获取)或本地文件名,如果没有位置已知,则为空。”所以这是myapp.sh
在同一目录中。