.AWK 확장자를 확인하기 위한 bash 스크립트

.AWK 확장자를 확인하기 위한 bash 스크립트
if [ ! $var  = " *.awk " ] ; then 
            echo "$var contains awk file"
            fi

이것이 내가 가지고 있는 것이지만 그것을 실행하고 파일 이름을 입력하지 않고 .awk여전히 awk 파일이 포함되어 있다고 말합니다.

답변1

에서는 다음 bash을 사용하여 글로빙 테스트를 수행할 수 있습니다.

if [[ $var == *.awk ]]; then
    echo '$var ends with ".awk"'
else
    echo '$var does not end with ".awk"'
fi

이중 대괄호와 등호에 유의하세요.

bash또한 이러한 테스트를 수행하는 표준 방법도 지원합니다.

case $var in
    *.awk) echo '$var ends with ".awk"' ;;
    *)     echo '$var does not end with ".awk"' ;;
esac

두 경우 모두 패턴을 *.awk인용할 수 없습니다. 패턴을 인용하면 globbing 패턴 일치가 아닌 문자열 비교가 됩니다.

테스트가 항상 성공하는 것처럼 보이는 이유는 두 가지입니다.

  1. 아마도 절대 일치하지 않을 리터럴 문자열  *.awk (양쪽의 공백 포함)에 대해 테스트합니다.
  2. 로 테스트를 무효화합니다 !.

관련 정보