Shell Script Dialog

  1. Dialog 預設設定通常在個人Home目錄下的檔案”.dialogrc”
    可使用指令 “dialog –create-rc ~/.dialogrc” 產生

  2. 因為預設底色是青色,結束後會有色塊殘留,所以建議將screen_color調整為黑色
    也可在 dialog 指令執行前先指定使用哪一個設定檔案進行dialog
    “export DIALOGRC=${path}/dialog.installer”
    記得離開前把DIALOGRC清空就好

  3. 下面是將常用的dialogrc寫成function

dialog_msgbox() {
  #$1 => msgbox的類別{no clear, clear, clear & exit}, $2 => 前視窗的文字說明, $3 => 顯示的資訊文字
  case $1 in
    0) 
      dialog --backtitle "${backtitle}" --title "$2" --msgbox "n${3}" 9 50;;
    1)
      dialog --backtitle "${backtitle}" --title "$2" --clear --msgbox "n${3}" 9 50;;
    2)
      dialog --backtitle "${backtitle}" --title "$2" --clear --msgbox "n${3}" 9 50
      export DIALOGRC=
      exit 1;;
  esac
}

dialog_infobox() {
  #$1 => 前視窗的文字說明, $2 => 顯示的資訊文字
  dialog --backtitle "${backtitle}" --title "${1}" --infobox "${2}" 5 50
  sleep 1
}

dialog_inputbox() {
  #$1 => 前視窗的文字說明, $2 => 顯示的資訊文字, $3 => 預設值
  exec 3>&1
  inputtext=$(dialog --backtitle "${backtitle}" --title "${1}" --inputbox "${2}" 10 60 ${3} 2>&1 1>&3)
  exec 3>&-
}

dialog_yesno() {
  #$1 => 前視窗的文字說明, $2 => 顯示的資訊文字
  dialog --backtitle "${backtitle}" --title "${1}" --yesno "${2}" 7 60
  return $?
}

dialog_passwdbox() {
  #$1 => 前視窗的文字說明, $2 => 顯示的資訊文字
  exec 3>&1
  inputtext=$(dialog --backtitle "${backtitle}" --title "${1}" --insecure --clear --passwordbox "${2}" 10 60 2>&1 1>&3)
  exec 3>&-
}
This entry was posted in Shell Script. Bookmark the permalink.