Bash

關於whiptail和bash函式的問題

  • August 21, 2018
  • 假設我有這個腳本:
#!/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稍後是否有另一個呼叫)?

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