Bye Bye Moore

PoCソルジャーな零細事業主が作業メモを残すブログ

whiptailをつかってCLIに対話型画面をつくる その8:whiptail画面を関数に分離

#! /bin/bash


function startBox {
    whiptail --msgbox "Welcome!!" 10 40
}

function mainMenu {
  whiptail --title "Menu" --menu "choose an option" 12 40 4 \
  "ONE" "option 1" \
  "TWO" "option 2" \
  3>&1 1>&2 2>&3
}

function case1 {
    whiptail --msgbox "YES 1" 10 40
}

function case2 {
    whiptail --msgbox "No 2" 10 40
}

function endBox {
    whiptail --msgbox "Thank YOU!!" 10 40
}

startBox

RESULT=$(mainMenu)

case $RESULT in
  "ONE")
    case1 ;;
  "TWO")
    case2 ;;
  *)
    echo "WtF...!?"
esac

endBox

順番に実行したら、こんな風になります。
f:id:shuzo_kino:20190606010215p:plain
f:id:shuzo_kino:20190606010234p:plain
f:id:shuzo_kino:20190606010244p:plain
f:id:shuzo_kino:20190606010306p:plain