리눅스 터미널에서 다이얼로그 UI를 만들어보자

Jinseok Lee·2022년 6월 23일
0
post-custom-banner

사연

베스천 서버를 하나 만들었는데 서버의 목록이 나열되고 해당 서버를 선택해서 접속하는 형식을 만들어보고 싶었음. 그래서 알아보던중 dialog라는 툴을 사용하면 linux상에서도 dialog창을 사용할 수 있다고 해서 리서치를 해보았음

예제코드

connect-server.sh

HEIGHT=20
WIDTH=80
CHOICE_HEIGHT=20 # 리스트 출력 개수
BACKTITLE="Backtitle here"
TITLE="Buff dev server instances"
MENU="Choose one of the following options:"

OPTIONS=(1 "kpop printshop front server (i-091389f09324e6256)"
         2 "kpop printshop admin api server (i-06ce721057f78dcc0)"
         3 "kpop batch server (i-0b2b1878f6778261e)"
         4 "kpop api server (i-0042ee0f91efd37f2)"
         5 "bfactory utils server (i-09a8f4c0cdd711fd3)"
         6 "bfactory cimpress api server (i-0b126003dab563e13)"
         7 "bfactory admin batch server (i-0f481ea8012469a8e)"
         8 "bfactory admin api and front server (i-08e627cd197c3100e)"
 )

CHOICE=$(dialog --clear \
                --backtitle "$BACKTITLE" \
                --title "$TITLE" \
                --menu "$MENU" \
                $HEIGHT $WIDTH $CHOICE_HEIGHT \
                "${OPTIONS[@]}" \
                2>&1 >/dev/tty)

SERVER_KEY=/home/ubuntu/.aws/aws-server-key.pem

clear
case $CHOICE in
        1)
                ssh -i "$SERVER_KEY" ubuntu@172.xxx.xxx.xxx
            ;;
        2)
                ssh -i "$SERVER_KEY" ubuntu@172.xxx.xxx.xxx
            ;;
        3)
                ssh -i "$SERVER_KEY" ubuntu@172.xxx.xxx.xxx
            ;;
        4)
                ssh -i "$SERVER_KEY" ubuntu@172.xxx.xxx.xxx
                ;;
        5)
                ssh -i "$SERVER_KEY" ubuntu@172.xxx.xxx.xxx
                ;;
        6)
                ssh -i "$SERVER_KEY" ubuntu@172.xxx.xxx.xxx
                ;;
        7)
                ssh -i "$SERVER_KEY" ubuntu@172.xxx.xxx.xxx
                ;;
        8)
                ssh -i "$SERVER_KEY" ubuntu@172.xxx.xxx.xxx
                ;;
esac

실행

chmod +x connect-server.sh
./connect-server.sh

실행을 해보니 목록이 잘 나오고 목록을 선택했을때 제대로 스크립트가 동작되어 편하게 베스천 서버를 가동할 수 있었다.

profile
전 위메프, 이직준비중
post-custom-banner

0개의 댓글