[Shell Script] 기초부터 시작하기 (5)

augusstt·2023년 5월 18일
0

Shell Script

목록 보기
5/7
post-thumbnail

select 제어문

이전 포스팅에서 다뤘던 case 제어문에 이어서 select 제어문에 대하여 알아보자

select제어문은 조건의 여부에 따라 다음 명령을 수행하는 제어문이다.
사용자에게 여러가지의 메뉴를 번호로 표기하여 입력을 받아 명령을 수행하는 방식으로 시행된다.

기본적인 사용법은 아래와 같다.

select Variable "A" "B" "C"
do
	"you choose $Variable"
done

./select.sh

> 1) A
  2) B
  3) C

#? 2
you choose B

중간의 #? 2는 2를 입력한다는 의미이다.

이제 한번 예시 코드를 작성해보자

#! /bin/zsh

PS3="Seclet one option number : "

echo
select var in "A" "B" "C" "D"
do
        echo
        echo "you choose ${var}"
        echo
        break
done

못보던 PS3 변수가 선언되었다.
이 변수는 기본 사용법에서 사용된 #?를 사용자 지정 문자열로 나타내 주는 변수이다.
실행해보자

 ./select.sh                                                                    
> 1) A  2) B  3) C  4) D
Seclet one option number : 4

you choose D

내가 선언한 A,B,C,D의 변수를 선택할때는 해당번호를 입력해야 한다.

조금 더 응용해보자

#! /bin/zsh

PS3="Select number #"

echo
number(){
select i
do
        echo
        echo "you choose $i"
        echo
        break
done
}
number one two three four five

number라는 함수 안에 select문을 사용한 예제이다.

이번엔 case문을 함께 사용해보자

#! /bin/zsh

PS3="Select number #"

echo
select action in start stop status restart
do
        echo
        case $action in
                start)
                        echo "service start";;
                stop)
                        echo "service stop";;
                status)
                        echo "service status";;
                restart)
                        echo "service restart";;
                *)
                        echo "Error!"
                exit 1;;
        esac
        break
done

선택지로 주어지는 start, stop, status, restart들은 action이라는 변수에 저장이 되어 해당 변수에 따라 case문이 작동하여 지정된 문자열을 출력한다.
지정한 번호가 아닌 그 외의 번호를 입력할시 "Error!"를 출력한다.


reference

select 제어문

profile
Don't look back, just look forward and study 💻

0개의 댓글