我最近开始摆弄桌面条目,以便在 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 位于脚本的第一行,我不需要bash
在Exec=
桌面条目的行中指定。请注意,如果我bash
从该Exec=
行中删除,该应用程序将不会运行。
我还验证了它/bin
在我的$PATH
变量中,所以我应该自动有权访问bash
.
关于为什么我需要在脚本路径前添加 的任何想法bash
?
谢谢!
答案1
直接执行 BASH 脚本需要两个部分:
- 舍邦
- 可执行位
shebang 应如下所示。
#!/usr/bin/env bash
(使用env
是最佳实践。也可以写为完整路径,例如#!/bin/bash
。)
然后按如下方式设置可执行位。
chmod +x /home/detroitwilly/scripts/fixres.sh