기계적 인조 인간

bash에서 문자열을 비교하는 방법

섹시레이싱걸엄지언비키니쇼케이스

섹시레이싱걸엄지언비키니쇼케이스

차례:

Anonim

Bash 스크립트를 작성할 때 종종 두 문자열을 비교하여 동일한 지 여부를 확인해야합니다. 두 개의 문자열은 길이가 동일하고 동일한 문자 시퀀스를 포함 할 때 동일합니다.

이 학습서는 Bash에서 문자열을 비교하는 방법을 설명합니다.

비교 연산자

비교 연산자는 값을 비교하고 true 또는 false를 반환하는 연산자입니다. Bash에서 문자열을 비교할 때 다음 연산자를 사용할 수 있습니다.

  • string1 = string2 string1 == string2 항등 연산자는 피연산자가 같으면 true를 반환합니다.
    • test 와 함께 = 연산자를 사용하십시오 ; then echo "Strings are equal." else echo "Strings are not equal." fi ; then echo "Strings are equal." else echo "Strings are not equal." fi

      스크립트가 실행되면 다음 출력이 인쇄됩니다.

      Strings are equal.

      다음은 사용자의 입력을 받아 주어진 문자열을 비교하는 또 다른 스크립트입니다. 이 예에서는 ]; then echo "Strings are equal." else echo "Strings are not equal." fi 를 사용합니다 ]; then echo "Strings are equal." else echo "Strings are not equal." fi ]; then echo "Strings are equal." else echo "Strings are not equal." fi

      프롬프트가 표시되면 스크립트를 실행하고 문자열을 입력하십시오.

      Enter first string: Linuxize Enter second string: Ubuntu Strings are not equal.

      논리 및 && 및 또는 || 문자열을 비교하려면:

      ] && echo "Equal" || echo "Not equal"

      Not equal

      문자열에 하위 문자열이 포함되어 있는지 확인

      문자열에 하위 문자열이 포함되어 있는지 확인하는 방법에는 여러 가지가 있습니다.

      한 가지 방법은 별표 기호로 하위 문자열을 둘러싸는 것입니다. * 모든 문자와 일치합니다.

      #!/bin/bash VAR='GNU/Linux is an operating system' if]; then echo "It's there." fi

      스크립트는 다음을 에코합니다.

      It's there.

      다른 옵션은 아래와 같이 정규식 연산자 =~ 를 사용하는 것입니다.

      #!/bin/bash VAR='GNU/Linux is an operating system' if]; then echo "It's there." fi

      마침표 뒤에 별표 .* 오는 경우 개행 문자를 제외한 모든 문자가 0 번 이상 나타납니다.

      문자열이 비어 있는지 확인

      변수가 빈 문자열인지 여부를 확인해야하는 경우가 종종 있습니다. -n -z 연산자를 사용하여이를 수행 할 수 있습니다.

      #!/bin/bash VAR='' if]; then echo "String is empty." fi

      String is empty.

      #!/bin/bash VAR='Linuxize' if]; then echo "String is not empty." fi

      String is not empty.

      대소 문자 연산자와 문자열 비교

      테스트 연산자를 사용하는 대신 case 문을 사용하여 문자열을 비교할 수도 있습니다.

      #!/bin/bash VAR="Arch Linux" case $VAR in "Arch Linux") echo -n "Linuxize matched";; Fedora | CentOS) echo -n "Red Hat";; esac

      Linuxize matched.

      사전 비교

      사전 비교는 문자열의 문자를 왼쪽에서 오른쪽으로 순차적으로 비교하여 두 문자열을 사전 순으로 비교하는 연산입니다. 이런 종류의 비교는 거의 사용되지 않습니다.

      다음 스크립트는 두 문자열을 사전 식으로 비교합니다.

      #!/bin/bash VAR1="Linuxize" VAR2="Ubuntu" if]; then echo "${VAR1} is lexicographically greater then ${VAR2}." elif]; then echo "${VAR2} is lexicographically greater than ${VAR1}." else echo "Strings are equal" fi

      스크립트는 다음을 출력합니다:

      Ubuntu is lexicographically greater than Linuxize.

      결론

      문자열 비교는 Bash 스크립팅에서 가장 기본적이고 자주 사용되는 작업 중 하나입니다. 이 학습서를 읽은 후 Bash에서 문자열을 비교하는 방법에 대해 잘 알고 있어야합니다. 문자열 연결에 대한 안내서를 확인할 수도 있습니다.

      bash 터미널