Bash
關於whiptail和bash函式的問題
- 假設我有這個腳本:
#!/bin/bash function cpp-lang { yum install "Development Tools" } function updatesys { yum -y update yum -y upgrade } whiptail --checklist "test" 5 40 5\ Update "Update the system" on \ C++ "Install C++" off 2>results while read choice do case $choice in Update )updatesys ;; C++)cpp-lang ;; *) ;; esac done < results
當我執行它時,它退出了,我應該從函式中返回一些東西嗎?
- 以上面的腳本為例,我應該在
sudo
每次呼叫時執行yum install
還是做得sudo ./script.sh
足夠?
基本上(當然是關於
sudo
應該最有效地使用方式的第二個問題),這是一個判斷問題:
- 在腳本中有三個呼叫
yum
. 如果腳本在開始時測試它是否以**root
**sudo 的身份執行並自行執行,那將是一個更簡單的腳本。- 另一方面,有些人可能會評論說,僅執行 as**
root
**會降低測試互動部分的安全性(如果您繼續開發和擴展腳本,包括直接指定包名稱)。我自己的傾向是提供一個命令行選項來讓腳本被測試,並且只顯示(或記錄)將要執行的相應命令。例如:
- 如果
whiptail
沒有安裝會怎樣?- 如果不是一個詞,在語句
$choice
中引用它可能會有所幫助。case
- 如果 yum 報告錯誤會發生什麼(使用者是否看到,或者
whiptail
稍後是否有另一個呼叫)?