我想創建一個 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
則執行該子句。