셸 프로 그래 밍 의 조건문

4091 단어 shellLinux
조건 부 테스트
  • 파일 테스트
  • 정수 테스트
  • 문자열 과 논리 테스트
  • IF 문
  • if 단일 분기 문
  • if 두 갈래 문장
  • if 다 분기 문
  • if 내장
  • 조건 부 테스트 조작
    test 명령
  • 특정한 표현 식 이 성립 되 었 는 지 테스트 합 니 다. 조건 이 성립 되 었 을 때 테스트 문장의 반환 값 은 0 이 고 그렇지 않 으 면 다른 수치
  • 입 니 다.
      1: test      
      2: [       ]      //        

    파일 테스트
    [           ]

    상용 테스트 조작 부호
  • - d: 디 렉 터 리 여 부 를 테스트 합 니 다
  • - e: 디 렉 터 리 나 파일 이 존재 하 는 지 테스트 합 니 다
  • - f: 파일 인지 테스트
  • - r: 현재 사용자 가 읽 을 수 있 는 권한 이 있 는 지 테스트 합 니 다
  • - w: 현재 사용자 가 기록 할 수 있 는 권한 이 있 는 지 테스트 합 니 다
  • - x: 현재 사용자 가 실행 할 수 있 는 권한 이 있 는 지 테스트 합 니 다
  • [root@localhost ~]# [ -d /media/cdrom ]
    [root@localhost ~]# echo $?
    0                                             //  0      
    [root@localhost ~]# [ -d /media/cdrom/Server ]
    [root@localhost ~]# echo $?
    1                                             //  1       
    [root@localhost ~]# [ -d /media/cdrom ] && echo "YES"     //&&   ,“  ”   
    YES

    정수 비교
    [   1       2]

    상용 테스트 조작 부호
  • -eq:
  • -ne: 같 지 않다
  • -gt:
  • 보다 크다.
  • -lt: 작 음
  • -le: 작 거나 같다
  • -ge: 크 거나 같다
  • [root@localhost ~]# who |wc -l
    7
    [root@localhost ~]# [ $(who |wc -1) -gt 5] && echo "Too many."   //     >5
    Too many.
    [root@localhost ~]# [ $(who |wc -1) -ge 10 ] && echo">= 10."      //     >=10
    [root@localhost ~]# FreeCC=$(free -m | grep "Mem:”| awk '{print $6}`)
    [root@localhost ~]# [ $FreeCC -It 1024 ] && echo ${FreeCC}MB        //      < 1024MB  
    275MB

    문자열 비교
  • 격식 1
    [    1 =    2 ]
    [    1 !=    2 ]
  • 격식 2
    [ -z     ]
  • 상용 테스트 조작 부호
  • =: 문자열 내용 이 같 음
  • !=:문자열 내용 이 다 릅 니 다!호 는 상 반 된 뜻 을 나타 낸다
  • - z: 문자열 내용 이 비어 있 음
  • [root@localhost ~]# echo $LANG            //        
    zh_ CN.UTF-8
    [root@localhost ~]# [ $LANG != "en.US" ] && echo "Not en.US"
    Not en.US
    [root@localhost ~]# read -p“        (yes/no) ?”ACK    //           yes
            (yes/no) ? yes
    [root@localhost ~]# [ $ACK = "yes" ] && echo "  "
      

    논리 테스트
      1:[    1 ]      [    2 ]...
      2:  1       2...

    상용 테스트 조작 부호
  • - a 또는 &: 논리 와 '그리고' 의 뜻
  • - o 또는 |: 논리 또는, "또는"의 뜻
  • !:논리 적 여부
  • [root@localhost ~]#[ -dletc ] && [-r /etc] && echo “You can open it“
    [root@localhost~]#[ -d/etc ] II [-d /home] && echo “ok"

    if 문장의 분기 구조
    단일 분기 구조
    if           
      then           
    fi                                

    단일 분기 if 구문
  • 마 운 트 지점 디 렉 터 리 를 판단 하고 존재 하지 않 으 면 자동 으로 생 성
    [root@localhost ~]# vim test01.sh
    #!/bin/bash
    dir="/mnt/aaa/"
    if [ !-d $dir ]              //         
    then
    mkdir -p $dir
    if
    더 블 분기 구조
  • if        
      then      1
      else      2
    fi

    두 갈래 if 문장
  • 대상 호스트 의 생존 여 부 를 판단 하고 검사 결 과 를 표시 합 니 다
  • root@localhost ~]# vim test02.sh
    #!/bin/bash
    ping -c 3 -i 0.2 -W 3 $1 &> /dev/null
    if [ $? -eq 0 ]
    then                                  //  ping       ,         
      echo "Host $1 is up."
    else
      echo "Host $1 is down."
    fi

    다 분기 구조
    if       1
      then     1
    elif       2
      then     2
    else
          3
    fi

    다 분기 if 구문
  • 점수 범 위 를 판단 하여 우수, 합격, 불합격 3 단
    [root@localhost ~]# vim test03.sh
    #!/bin/bash
    read -p "       (0-100):" a
    if [ $a -ge 85 ]&&[ $a -le 10 ]
    then
    echo"$a ,  !"                      //        ,         
    elif[ $a -ge 70 ]&&[ $a -le 84 ]
    then
    echo"$a ,  !"
    else
    echo"$a ,   !"
    fi
  • 으로 나 누 었 다.

    좋은 웹페이지 즐겨찾기