[현학 현 망 & Shell 프로 세 스 제어] - 45. case 조건문
case
문장 과 if…elif…else
문장 은 모두 다 분지 조건문 이지 만 if 다 분지 조건문 과 달리 case
문장 은 하나의 조건 관계 만 판단 할 수 있 고 if
문장 은 여러 가지 조건 관 계 를 판단 할 수 있다.case
구문 문법 은 다음 과 같다.case $ in
" 1")
1, 1
;;
" 2")
2, 2
;;
… …
*)
,
;;
esac ( :case )
설명:
case
문장 과 if…elif…else
문장의 차이 점:case
문구 에서 하나의 조건 (값) 만 판단 할 수 있 고 특정한 상황 (값) 에 부합 되 는 지 여 부 는 판단 이다.한편,
if…elif…else
문 구 는 전편 의 예제 에 따라 if 다 분기 조건 문 구 를 볼 수 있 고 하나의 입력 이 비어 있 는 지, 파일 인지, 디 렉 터 리 인지 등 여러 가지 조건 관 계 를 판단 할 수 있 으 며 서로 다른 판단 이다.2. case 문구 에 주의해 야 할 내용
case
문 구 는 변수 중의 값 을 추출 한 다음 에 문체 중의 값 과 하나씩 비교 합 니 다.수치 가 맞 으 면 해당 하 는 프로그램 을 실행 하고 수치 가 맞지 않 으 면 다음 값 을 순서대로 비교 합 니 다.모든 값 이 맞지 않 으 면 실행 *)
의 프로그램 을 실행 하고 *)
은 모든 다른 값 을 대표 합 니 다.case
문 구 는 “case”
로 시작 하여 “esac”
로 끝난다.;;
더 블 분 호 를 통 해 끝 나 는 것 은 이 프로그램의 끝 을 나타 낸다.3. 연습
예시 1
#!/bin/bash
#
echo "want to beijing,please input 1."
echo "want to shanghai,please input 2."
echo "want to chendu,please input 3."
# , cho
read -t 30 -p "please input your choice: " cho
# case
case $cho in
"1")
echo "to beijin"
;;
"2")
echo "to shanghai"
;;
"3")
echo "to chendu"
;;
*)
echo "error input"
;;
esac
예시 2
이전 글 if 다 분기 조건 문 구 를 컴퓨터 연습 에서 3 층 if 내장 을 케이스 문 으로 바 꾸 어 실현 합 니 다.
#!/bin/bash
# 。
# 1. read , num1 num2
read -t 30 -p "Please input num1: " num1
read -t 30 -p "Please input num2: " num2
# 2. read , ope.
read -t 30 -p "Please input a operator: " ope
#
# num1、num2 ope 。
# -n : , 。
# -a : 。
if [ -n "$num1" -a -n "$num2" -a -n "$ope" ]
then
# num1 num2
# , 。
# test1 test2 $( ) 。
test1=$(echo $num1 | sed 's/[0-9]//g')
test2=$(echo $num2 | sed 's/[0-9]//g')
# :
# sed , num1 , 0-9 , 。
# test1 , num1 , 。
# test1 , num1 , num1 。
# , num1 num2 。
# test1 test2 , numl num2 .
# -z : ( )
# -a : 。
if [ -z "$test1" -a -z "$test2" ]
then
# test1 test2 , 。
# 。
# $ope 。
case $ope in
"+")
# 。
value=$(($num1+$num2))
;;
"-")
# , 。
value=$(($num1-$num2))
;;
"*")
# , 。
value=$(($num1*$num2))
;;
"/")
# , 。
value=$(($num1/$num2))
;;
*)
# ,
echo "Please enter a valid symbol."
# , 10。
exit 10
;;
esac
else
# test1 test2 , numl num2 。
# 。
echo "Please enter a valid value."
# , 11。
exit 11
fi
else
echo "qing input neirong."
exit 12
fi
# 。
echo "$num1 $ope $num2 :$value"
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
다양한 언어의 JSONJSON은 Javascript 표기법을 사용하여 데이터 구조를 레이아웃하는 데이터 형식입니다. 그러나 Javascript가 코드에서 이러한 구조를 나타낼 수 있는 유일한 언어는 아닙니다. 저는 일반적으로 '객체'{}...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.