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

Jinseok Lee·2022년 6월 23일

사연

베스천 서버를 하나 만들었는데 서버의 목록이 나열되고 해당 서버를 선택해서 접속하는 형식을 만들어보고 싶었음. 그래서 알아보던중 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
전 위메프, 이직준비중

0개의 댓글