Bash

桌麵條目在執行值中需要“bash”

  • January 10, 2019

我最近開始弄亂桌麵條目,以便在 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=請注意,如果我bashExec=行中刪除,應用程序將不會執行。

我還驗證了/bin它在我的$PATH變數中,所以我應該可以自動訪問bash.

關於為什麼我需要在腳本的路徑之前添加任何想法bash

謝謝!

直接執行 BASH 腳本需要兩個部分:

  1. 舍邦
  2. 可執行位

shebang 應該如下所示。

#!/usr/bin/env bash

(使用env是最佳實踐。它也可以寫成完整路徑,例如#!/bin/bash。)

然後如下設置可執行位。

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

引用自:https://unix.stackexchange.com/questions/493793