我刚刚从 ubuntu 22.04 更新到 24.04,现有的 *.desktop 文件之一出现问题。在文件内部,我使用一个在Exec声明中包含 '' 字符的命令。
一个最小的例子在这里:
[Desktop Entry]
Type=Application
Terminal=true
Name=test
Exec=bash -c "echo \\"
Comment=test
Icon=/usr/share/icons/Humanity/apps/48/gnome-remote-desktop.svg
X-Desktop-File-Install-Version=0.22
我收到错误消息:无法启动测试。桌面文件未指定 Exec 字段。
当我将 Exec 行替换为Exec=bash -c "echo hi"
这是从 ubuntu 22.04 到 24.04 的重大变化吗?或者我需要一个转义字符吗?
这实际上在 Freedesktop 规范中提到了Exec 键(强调我的):
所以,给定
然后
desktop-file-validate
抱怨:(因为它首先应用转义规则,变成
\\
,\"
然后应用引用规则,进行\"
文字引用而不是结束引用)而以下desktop-file-validate
无怨无悔地通过。