Bash 腳本 if - else 條件

Bash 腳本 if - else 條件

我想創建一個 bash 腳本,從互聯網下載特定的安裝程序,安裝它,創建一個啟動它的桌面文件,使其自動啟動,然後刪除安裝程序,但有一些我想要的腳本去檢查。這些東西是:

  • 安裝程式是否存在(如果不存在,則下載它,否則將其設為可執行)

  • 先前的安裝是否存在(如果存在,則設定其卸載程式可執行文件,運行它並刪除它留下的所有內容,否則轉到下一步)

  • 透過 apt list 查看 gksu 軟體包的狀態 | grep gksu(如果已安裝,請轉到下一步,否則安裝它)並且

  • gksu example.run 的輸出(如果有「GNOME_SUDO_PASS」行,則重複 gksu example.run,否則轉到下一步)

答案1

條件:安裝程式 - ls 。 | grep example.runchmod +x pelda.run else wget download/link/of/example.run

據我理解,上面的內容可以翻譯為:

if [ -f example.run ]
then
    chmod +x pelda.run
else
    wget download/link/of/example.run
fi

[ -f example.run ]是使用該指令的範例test。如果名為的檔案example.run存在,則測試命令將回傳代碼設為 0(表示 true)。如果沒有,它會將返回碼設為 1(表示 false)。

條件:gksu - apt list --已安裝 | grep gksu,如果!

當我解釋上面的內容時,它會翻譯為:

if apt list --installed | grep gksu
then
    gksu pelda.run
else
    sudo apt install gksu
fi

在這裡,我們使用的事實是grep根據是否找到匹配項來設定返回代碼。 apt list --installed傳回已安裝軟體包的清單。如果其輸出任何位置包含字串gksu,則grep設定回傳碼 0(表示 true)並then執行該子句。如果不存在,else則執行該子句。

相關內容