桌面输入需要 Exec 值中的“bash”

桌面输入需要 Exec 值中的“bash”

我最近开始摆弄桌面条目,以便在 Gnome 启动时运行一些脚本。

我读过一些 freedesktop 文档,以及这个帖子关于创建启动脚本。我目前有一个正在启动的桌面条目,但它的行为方式与我理解的方式不同。

一些系统信息:这是在 Windows 中的 VirtualBox 上运行的 CentOS7

这是我的桌面条目:

[Desktop Entry]
Name=fixres
GenericName=Resolution Fixer
Comment=Changes resolution to 1920x1080
Exec=bash /home/detroitwilly/scripts/fixres.sh
Terminal=false
Type=Application
X-GNOME-Autostart-enabled=true

正在执行的脚本使用 xrandr 添加新的分辨率模式并将其应用到我的虚拟显示器。

现在,脚本中的第一行有 shebang #!/bin/bash。我的理解是,如果 shebang 位于脚本的第一行,我不需要bashExec=桌面条目的行中指定。请注意,如果我bash从该Exec=行中删除,该应用程序将不会运行。

我还验证了它/bin在我的$PATH变量中,所以我应该自动有权访问bash.

关于为什么我需要在脚本路径前添加 的任何想法bash

谢谢!

答案1

直接执行 BASH 脚本需要两个部分:

  1. 舍邦
  2. 可执行位

shebang 应如下所示。

#!/usr/bin/env bash

(使用env是最佳实践。也可以写为完整路径,例如#!/bin/bash。)

然后按如下方式设置可执行位。

chmod +x /home/detroitwilly/scripts/fixres.sh

相关内容