셸 비교 및 테스트

2311 단어
비교 및 테스트
  • 비교 및 테스트
  • 1.1 산수 비교
  • 1.2 문자열 비교
  • 1.2.1 두 문자열 이 같은 지 비교
  • 1.2.2 두 문자열 이 다른 지 비교 하기
  • 1.2.3 알파벳 뒤에 있 는 문자열 찾기
  • 1.2.4 테스트 빈 문자열
  • 2 테스트 문구

  • 비교 기호
    속뜻
    -eq
    ... 과 같다
    -ne
    같 지 않다
    -gt
    보다 크다
    -lt
    보다 작 음 (less)
    -ge
    ... 보다 크다
    -le
    이하
    논리 연산 자
    속뜻
    -a
    논리 와
    -o
    논리
    파일 형식 테스트 문자
    속뜻
    -f
    주어진 변수 가 정상 적 인 파일 경로 나 파일 이름 을 포함 하고 있다 면 진짜 로 돌아 갑 니 다.
    -x
    주어진 변수 에 포 함 된 파일 을 실행 할 수 있다 면 진짜 로 돌아 갑 니 다.
    -d
    주어진 변수 가 디 렉 터 리 를 포함 하고 있다 면 진짜 로 돌아 갑 니 다.
    -e
    주어진 변수 에 포 함 된 파일 이 존재 하면 진짜 로 돌아 갑 니 다.
    -c
    주어진 변수 가 문자 장치 파일 의 경 로 를 포함 하고 있다 면 진짜 로 돌아 갑 니 다.
    -b
    주어진 변수 가 블록 장치 파일 의 경 로 를 포함 하고 있다 면 진짜 로 돌아 갑 니 다.
    -w
    주어진 변수 에 포 함 된 파일 을 쓸 수 있다 면 진짜 로 돌아 갑 니 다.
    -r
    주어진 변수 에 포 함 된 파일 을 읽 을 수 있다 면 진짜 로 돌아 갑 니 다.
    -L
    주어진 변수 가 심 볼 릭 링크 를 포함 하고 있다 면 진짜 로 돌아 갑 니 다.
    1.1 산수 비교
    1.2 문자열 비교
    문자열 을 비교 할 때 이중 괄호 를 사용 하 는 것 이 좋 습 니 다. 단일 괄호 를 사용 하면 오류 가 발생 할 수 있 기 때 문 입 니 다.
    이중 괄호 는 Bash 의 확장 기능 입 니 다.성능 을 고려 하여 ash 나 dash 를 사용 하여 스 크 립 트 를 실행 하면 이 기능 을 사용 할 수 없습니다.
    1.2.1 두 문자열 이 같은 지 비교 하기
    『 8195 』 str1 이 str2 와 같 을 때 진짜 로 돌아간다.즉, str 1 과 str 2 에 포 함 된 텍스트 는 똑같다.
    [[ $str1 = $str2 ]]
     
    [[ $str1 = $str2 ]]
    

    1.2.2 두 문자열 이 다른 지 비교 하기
        str1 과 str2 가 다 르 면 진짜 로 돌아간다
    [[ $str1 != $str2 ]]
    

    1.2.3 알파벳 뒤에 있 는 문자열 찾기
    문자열 은 문자 의 ASCII 값 에 따라 비교 합 니 다.예 를 들 어 A 의 값 은 0x 41 이 고 a 의 값 은 0x 61 이다.따라서 A 는 a 보다 작고 AAa 는 Aaa 보다 작다.
    비교 명령
    속뜻
    [[ str2 ]]
    str 1 의 알파벳 순서 가 str 2 보다 크 면 진짜 로 돌아 갑 니 다.
    [[ str2 ]]
    str 1 의 알파벳 순서 가 str 2 보다 작 으 면 진짜 로 돌아 갑 니 다.
    1.2.4 테스트 빈 문자열
    비교 명령
    속뜻
    [[ -z $str1 ]]
    str1 이 빈 문자열 이면 진짜 로 돌아 갑 니 다.
    [[ -n $str1 ]]
    str1 이 빈 문자열 이 아니라면 진짜 로 돌아 갑 니 다.
    2 시험 문
    if [[ -n $str1 ]] && [[ -z $str2 ]] ;
    then
    commands;
    fi
    
    str1="Not empty "
    str2=""
    if [[ -n $str1 ]] && [[ -z $str2 ]];
    then
    echo str1 is nonempty and str2 is empty string.
    fi
    
    if [ $var -eq 0 ]; then echo "True"; fi
     
    if test $var -eq 0 ; then echo "True"; fi
    

    좋은 웹페이지 즐겨찾기