**해당 포스트는 Ubunto 22.04와 xShell을 기반으로 진행한 포스팅입니다.
1. select
: select는 사용자에게 옵션 목록을 제공하고, 선택을 입력받는데 사용된다. 간단한 인터페이스를 제공하는 스크립트를 작성할 때 주로 사용된다.
// select문 기본 구조
PS3="최초 표시할 안내 문구"
select 변수 in 옵션1 옵션2 ...; do
# 사용자 입력에 따라 실행할 명령
break
done
** 쉘 스크립트에서 PS3는 select 문에서 사용자 입력을 받을 때 표시되는 프롬프트 메시지를 정의하는 데 사용
예제) select와 case를 적절히 사용하여, 구글, 네이버, 다음, 종료 옵션을 만들고, 번호를 입력하여 선택할 수 있게 하는 스크립트를 작성하라.
#!/bin/bash
list=("구글" "네이버" "다음" "종료") # 옵션을 리스트로 설정
PS3="옵션 번호를 입력하세요: " # select 문에서는 PS3를 이용해 사용자 입력을 받는다
select choice in "${list[@]}"; do # 리스트의 모든 요소를 옵션으로 만든다
case "$choice" in
구글)
echo "구글 - www.google.com"
continue;; # 루프 제어
다음)
echo "다음 - www.daum.net"
continue;;
네이버)
echo "네이버 - www.naver.com"
continue;;
종료)
echo "종료합니다"
break;; # 루프 제어
*) //*(와일드카드)를 사용하여 예외처리
echo "잘못된 입력입니다"
continue;;
esac
done
echo "$REPLY" # PS3 프롬프트를 통해 입력 받은 값은 REPLY에 저장된다
//결과값
root@root:~/testdir# ./url.sh
1) 구글
2) 네이버
3) 다음
4) 종료
옵션 번호를 입력하세요: 1
구글 - www.google.com
옵션 번호를 입력하세요: 2
네이버 - www.naver.com
옵션 번호를 입력하세요: 3
다음 - www.daum.net
옵션 번호를 입력하세요: 4
종료합니다
4 # REPLY 환경 변수에 저장된 값
##루프(loop) 제어: continue, break##
continue : 반복문 전체를 중단하지는 않고, 특정 조건에서만 현재 루프의 나머지 부분을 건너뛴다. 전체적인 반복문은 다시 처음부터 실행한다.
break : 조건이 만족되면 반복문 전체를 빠져나온다
2. while, until
: while은 조건이 참일 동안, until은 반대로 조건이 거짓일 동안 루프(반복)을 실행한다.
# while 의 기본 구조
while [조건]; done
#조건이 참일 경우, 반복할 명령
do
# until의 기본 구조
until [조건]; done
#조건이 거짓일 경우, 반복할 명령
do
예제) 1~5까지 반복문을 사용하여 표시하는데, 3은 건너뛰는 반복문을 만들어라(while과 until을 각각 사용해서 작성해보자.
// while
#!/bin/bash
counter=0
while [ $counter -lt 5 ]; do
counter=$((counter + 1))
if [ $counter -eq 3 ]; then
echo "값 $counter 건너뜁니다."
continue
fi
if [ $counter -eq 5 ]; then
echo "값 $counter에서 반복 종료."
break
fi
echo "현재 값: $counter"
done
// until
#!/bin/bash
counter=0
until [ $counter -ge 5 ]; do
counter=$((counter + 1))
if [ $counter -eq 3 ]; then
echo "값 $counter 건너뜁니다."
continue
fi
if [ $counter -eq 5 ]; then
echo "값 $counter에서 반복 종료."
break
fi
echo "현재 값: $counter"
done
힘들지만 오늘도 해낸 나를 위한 한 마디,
"들은 것은 잊어버리도, 본 것은 기억하고, 직접 해본 것은 이해한다", 공자
"가장 중요한 것은 두렵고 실패하더라도 직접 경험해보는 것이다. 그러니 주저하지 말고, 두려움을 떨치고, 직접 실천해보자"
'System > Shell Script' 카테고리의 다른 글
[쉘 스크립트] sed, if, read, case (1) | 2024.11.18 |
---|---|
[쉘 스크립트] $는 어떤 용도로 쓰일까? (0) | 2024.11.16 |
[쉘 스크립트] 변수, Quoating, Redirection, Pipeline (0) | 2024.11.15 |