Bash

如何讓我的 bash 腳本看起來 100% 像一個 GUI 應用程序(所以使用者永遠不會看到終端)

  • June 28, 2013

我使用 kdialog 創建了一個 bash 腳本(它在 Kubuntu 12.04 上執行)。GUI 用於每個使用者互動(在第一個互動之後)。但是,腳本仍然必須從終端啟動,並且終端仍然可見,即使使用者不需要讀取終端輸出或在終端中輸入任何內容。有沒有一種簡單的方法可以進行下一步,讓我的 bash 腳本看起來 100% 像 KDE Gui 應用程序?

從下面 slm 和 Ilya Ananyev 的初步回答中,我看到製作 .desktop 文件可以完成此任務。這對我來說非常神奇,這是我正在尋找的那種簡單的答案。(我想要一個可以在午餐時間完成的任務,並將我的 bash 腳本在剩下的過程中看起來像一個真正的 GUI 應用程序。).desktop 文件也可能是這個問題的其他讀者的正確答案。

但是,在我的具體情況下,該腳本是一個安裝程序腳本。所以我發現自己處於 Catch-22 中。如何安裝 .desktop 文件來啟動我的安裝程序,而無需使用者首先為 .desktop 文件執行另一個安裝程序?

此外,就我而言,該腳本由不具備電腦知識的最終使用者使用。最終使用者根據我的建議購買了預裝 Linux 的電腦。我的目標是讓他們完全不用去終端就可以安裝我的軟體。(很可能他們以前從未見過命令提示符——他們中的一些人甚至還不知道如何使用滑鼠!)

因此,看來,我的解決方案需要一些神奇的方法來安裝 .desktop 文件,以便使用者可以點擊它來啟動我的安裝程序腳本。

總之,我的主要要求是:

  1. 一種在不顯示終端的情況下啟動腳本的方法。.desktop 文件將完成此操作。
  2. 一種在執行過程中隱藏終端的方法(因為我完全依賴 kdialog)。.desktop 文件將通過Terminal=falseset 完成此操作。
  3. 可選地,使用者輸入其 sudo 密碼的安全方式。我知道 kdialog 密碼輸入對話框,但我看到的使用範例並不安全。kdesudo 可能是一個解決方案,但它會多次提示輸入密碼,忽略 X 分鐘的通常/預設 sudo 超時。所以它不適用於我的atm。
  4. 很簡單,可以在我的午餐時間實施。.desktop 文件將完成此操作。
  5. 將我現有的 bash 腳本與 kdialog 結合使用。.desktop 文件將完成此操作。
  6. 不需要使用者在執行我的腳本之前進行額外的設置步驟。事實證明,KDE 使用者可以點擊位於任何位置的 .desktop 文件。所以我的使用者可以將 .desktop 文件下載到他們的 ~/Downloads 文件夾中並從那裡啟動它。

我希望我理解你的正確:你只需要一個現有腳本的啟動器。如果是這樣,請嘗試為您的腳本編寫一個小的 .desktop 文件並將其放在 ~/.local/share/applications 或 /usr/share/applications 中。這是一個例子:

[Desktop Entry]
Type=Application
Encoding=UTF-8
Name=Sample Application Name
Comment=A sample application
Exec=application
Icon=application.png
Terminal=false

此外(如果您想編寫某種安裝程序)您可以在安裝腳本中創建它。

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