从 *.desktop 文件执行 sh 脚本?

从 *.desktop 文件执行 sh 脚本?

我真正想做的是:创建带有图标的脚本。所以我只知道一种方法 - 带有图标的 file.desktop 文件。设置图标成功了,但我没有设置 EXEC 值 :/

有人能解释一下如何创建带有图标的可执行脚本吗?创建 .desktop 文件并将其链接到该脚本?有人能给我提供该 .desktop 文件的结构吗?

答案1

您没有提到您尝试过什么,因此请尝试以下操作:

[Desktop Entry]
Name=someName
Comment=
Exec=/path/to/script.sh
Icon=/path/to/icon
Terminal=false
Type=Application  

确保您的脚本是可执行的,如下所示:

sudo chmod +x /path/to/script.sh  

sudo如果您的脚本使用命令或任何其他需要用户输入的内容, 它也将不起作用。

如果您希望在运行时打开一个终端窗口(如果您需要添加输入或观察输出)请设置Terminal为 true。

Terminal=true

答案2

使用gnome-desktop-item-edit

gnome-desktop-item-edit --create-new /path/to/new/launcher

# Usually, one does (create launcher in current directory) :
gnome-desktop-item-edit --create-new .

系统将以图形方式提示您进行这些设置。这是我使用此工具创建的启动器之一:

#!/usr/bin/env xdg-open

[Desktop Entry]
Version=1.0
Type=Application
Terminal=false
Icon[en_GB]=/path/to/icon/for/en_GB.png
Name[en_GB]=Name_for_en_GB
Exec=/path/to/shell/script.sh
Comment[en_GB]=Some comment for en_GB
Name=Launcher Name
Comment=Some comment.
Icon=/path/to/icon/file.png

具体en_GB设置不作强制要求,可随意填写相同的值。

答案3

确保 bash 脚本的第一个命令是cd "${0%/*}"如果没有出现任何内容:此命令将当前工作目录更改为包含脚本的目录,因为大多数 shell 脚本都使用从其目录开始的相对路径。

答案4

创建一个名为 testicon.desktop 的文件并将其放在桌面上

$ more testicon.desktop
[Desktop Entry]
Version=1.0
Type=Application
Terminal=true
Icon=/home/robin/Desktop/testicon.png
Name=TestIcon
Exec=/home/robin/Desktop/testicon.sh
Comment=Some comment for en_GB
Name=TestIcon
Comment=Some comment.
Icon=/home/robin/Desktop/testicon.png

这是一个可执行的 bash 脚本。将其放在桌面上并运行,它将描述制作一个运行脚本的图标

$ more testicon.sh
#!/bin/bash

# this forces bash to use the Desktop directory i.e. where this bash script is located
cd "${0%/*}"

echo "to make a shell script run from an icon"
echo " make a file like this "
sleep 1
echo "====================================================="
cat ./testicon.desktop
echo "====================================================="
echo "called something like testicon.desktop"
sleep 2
echo " chmod +x the .desktop file"
echo " make a png file for the icon call it testicon.png"
echo " now right click on .desktop file and allow launching"
echo "should work"
sleep 10
echo "bye, disapparing in ten seconds"
sleep 10
 NUC 2023-11-16_16:05 ~/Desktop

这适用于

$ cat /etc/os-release
NAME="Ubuntu"
VERSION="20.04.6 LTS (Focal Fossa)"
ID=ubuntu
ID_LIKE=debian
PRETTY_NAME="Ubuntu 20.04.6 LTS"
VERSION_ID="20.04"
HOME_URL="https://www.ubuntu.com/"
SUPPORT_URL="https://help.ubuntu.com/"
BUG_REPORT_URL="https://bugs.launchpad.net/ubuntu/"
PRIVACY_POLICY_URL="https://www.ubuntu.com/legal/terms-and-policies/privacy-policy"
VERSION_CODENAME=focal
UBUNTU_CODENAME=focal

相关内容