Bash
桌麵條目在執行值中需要“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在腳本的第一行,我不需要在桌麵條目bash
的行中指定。Exec=
請注意,如果我bash
從Exec=
行中刪除,應用程序將不會執行。我還驗證了
/bin
它在我的$PATH
變數中,所以我應該可以自動訪問bash
.關於為什麼我需要在腳本的路徑之前添加任何想法
bash
?謝謝!
直接執行 BASH 腳本需要兩個部分:
- 舍邦
- 可執行位
shebang 應該如下所示。
#!/usr/bin/env bash
(使用
env
是最佳實踐。它也可以寫成完整路徑,例如#!/bin/bash
。)然後如下設置可執行位。
chmod +x /home/detroitwilly/scripts/fixres.sh