嘗試在終端直接執行 ./abc.desktop 失敗,系統將其視為腳本逐行解析,報錯 "not found"。因為 .desktop 文件本質是配置文件,而非可執行腳本。
[Desktop Entry]
Type=Application
Terminal=true
Name=unmount-mount
Icon=/path/to/icon/icon.svg
Exec=/path/to/file/mount-unmount.sh
gtk-launch (推薦)gtk-launch abc.desktop
此命令會解析 .desktop 文件並按 Exec 字段啟動程序,效果等同於圖形界面點擊。
# 提取 Exec 行並執行
exec_line=$(grep '^Exec=' abc.desktop | cut -d'=' -f2-)
eval "$exec_line"
用 Python/C++ 讀取 .desktop 文件,解析 Exec、Path、Terminal 等字段,構建命令行執行。
.desktop 文件遵循 FreeDesktop 標準,僅包含元數據。桌面環境 (GNOME/KDE) 通過 gio launch 或 kde-open 解析並啟動。命令行需調用相應工具或自行解析。