Shell if else 문장의 구체적인 사용 방법

4580 단어 Shellifelse
다른 프로그래밍 언어와 유사하게 셸도 선택 구조를 지원하며 두 가지 형식이 있는데 그것이 바로 ifelse문장과casein문장이다.이 절에서 먼저 ifelse 문장을 소개합니다.case in 문장은 에서 소개될 것입니다.
만약 당신이 C언어, 자바, 자바스크립트 등 다른 프로그래밍 언어에 익숙해졌다면, 셸에 있는ifelse문장이 좀 이상하다고 느낄 수도 있습니다.

if 문장


가장 간단한 용법은 다음과 같은 문법 형식의 if 문장만 사용하는 것이다.

if condition
then
  statement(s)
fi
condition은 판단 조건입니다. 만약condition이 성립되면 ("진짜"로 되돌아오기) 다음 뒤에 있는 문장이 실행됩니다.만약 조건이 성립되지 않으면 (가짜로 돌아가기) 어떤 문장도 실행하지 않습니다.
본질적으로 말하자면, if는 명령의 퇴출 상태를 검출하는데, 우리는 다음 절에서깊이 있게 설명하다.
주의, 마지막에fi로 닫아야 합니다.fi는if를 거꾸로 맞춤법입니다.바로 파이가 있어서 끝낼 필요가 없기 때문에 여러 문장이 있어도 {}로 둘러싸지 않아도 된다.
만약 당신이 좋아한다면, then과if를 한 줄에 쓸 수도 있습니다.

if condition; then
  statement(s)
fi
condition 뒤의 번호를 주의하십시오.if와then이 같은 줄에 있을 때, 이 번호는 반드시 필요합니다. 그렇지 않으면 문법 오류가 발생할 수 있습니다.
인스턴스 1
다음 예제에서는 if 문장을 사용하여 두 숫자의 크기를 비교합니다.

#!/bin/bash
read a
read b
if (( $a == $b ))
then
  echo "a b "
fi
실행 결과:
84L
84L
a와 b는 같다
에서한 절에서 우리는 ()) 는 수학 계산 명령으로 가장 기본적인 가감 곱셈 연산을 할 수 있을 뿐만 아니라, 크고, 작고, 같은 관계 연산, 그리고, 또는, 비논리 연산도 할 수 있다고 말했다.a와 b가 같을 때 (($a==$b)) 판단 조건이 성립되고if에 들어가서then 뒤의 echo 문장을 실행합니다.
인스턴스 2
판단 조건에서도 다음과 같은 논리적 연산자를 사용할 수 있습니다.

#!/bin/bash
read age
read iq
if (( $age > 18 && $iq < 60 ))
then
  echo " , !"
  echo " C (http://c.biancheng.net/) , 。"
fi
실행 결과:
20L
56L
& & & 바로 논리적'과'연산자이다. & & 양측의 판단 조건이'진'일 때만 전체 판단 조건이'진'일 수 있다.
다른 프로그래밍 언어에 익숙한 독자들은 then 뒤에 여러 개의 문장이 있어도 {}로 둘러싸일 필요가 없습니다. 왜냐하면fi가 끝나기 때문입니다.

if else 문장


만약 두 개의 지점이 있다면, 다음 형식의 if else 문장을 사용할 수 있습니다.

if condition
then
  statement1
else
  statement2
fi
condition이 성립되면, then 뒤의statement1 문장이 실행됩니다.그렇지 않으면else 뒤의statement2 문장을 실행합니다.
예:

#!/bin/bash
read a
read b
if (( $a == $b ))
then
  echo "a b "
else
  echo "a b , "
fi
실행 결과:
10L
20L
a와 b가 같지 않습니다. 입력 오류입니다.
운행 결과에서 알 수 있듯이 a와 b는 같지 않고 판단 조건이 성립되지 않기 때문에else 뒤의 문장을 집행했다.

if elif else 문장


Shell은 여러 브랜치를 지원하며 브랜치가 많을 때 다음과 같은 형식의 if elif else 구조를 사용할 수 있습니다.

if condition1
then
  statement1
elif condition2
then
  statement2
elif condition3
then
  statement3
……
else
  statementn
fi
주의,if와elif 뒤에 then을 따라야 합니다.
전체 문장의 실행 논리는 다음과 같습니다.
  • 만약condition1이 성립된다면if 뒤의statement1을 실행한다.만약condition1이 성립되지 않는다면elif를 계속 집행하고condition2를 판단합니다..
  • 만약condition2가 성립된다면statement2를 집행한다.만약condition2가 성립되지 않는다면, 뒤에 있는elif를 계속 집행하고condition3를 판단합니다.
  • 만약condition3가 성립된다면statement3를 집행한다.condition3가 성립되지 않으면 뒤에 있는 elif를 계속 실행합니다.
  • 만약에 모든if와elif판단이 성립되지 않으면 마지막else에 들어가서statementn을 집행한다..
  • 예를 들어 나이를 입력하고 대응하는 인생 단계를 출력한다.
    
    #!/bin/bash
    read age
    if (( $age <= 2 )); then
      echo " "
    elif (( $age >= 3 && $age <= 8 )); then
      echo " "
    elif (( $age >= 9 && $age <= 17 )); then
      echo " "
    elif (( $age >= 18 && $age <=25 )); then
      echo " "
    elif (( $age >= 26 && $age <= 40 )); then
      echo " "
    elif (( $age >= 41 && $age <= 60 )); then
      echo " "
    else
      echo " "
    fi
    
    실행 결과 1:
    십구
    성년
    실행 결과 2:

    노년
    다시 한 번 예를 들어 정수를 입력하고 해당 정수에 대응하는 요일의 영문 표시를 출력합니다.
    
    #!/bin/bash
    printf "Input integer number: "
    read num
    if ((num==1)); then
      echo "Monday"
    elif ((num==2)); then
      echo "Tuesday"
    elif ((num==3)); then
      echo "Wednesday"
    elif ((num==4)); then
      echo "Thursday"
    elif ((num==5)); then
      echo "Friday"
    elif ((num==6)); then
      echo "Saturday"
    elif ((num==7)); then
      echo "Sunday"
    else
      echo "error"
    fi
    
    실행 결과 1:
    Input integer number: 4
    Thursday
    실행 결과 2:
    Input integer number: 9
    error
    Shell if else 문장의 구체적인 사용 방법에 대한 자세한 설명은 여기 있습니다. 더 많은 Shell if else 문장 내용은 저희 이전의 문장을 검색하거나 아래의 관련 문장을 계속 훑어보십시오. 앞으로 많은 응원 부탁드립니다!

    좋은 웹페이지 즐겨찾기