Bash 스크립트에서 텍스트를 지정하는 방법

Bash 스크립트에서 텍스트를 지정하는 방법

안녕하세요. 특정 조건과 일치하도록 출력 파일의 텍스트를 일치시켜야 하는 스크립트를 작성 중인데 실제로 일치하는지 확인하지 않는 것 같습니다.

echo $RESULT | grep -q '[a-z]&[A-Z]' && [ "$RESULT" = File Received ] && RETURN="$SERVICE $FINAL 0"
echo $RESULT | grep -q '[a-z]&[A-Z]' && [ "$RESULT" = File not received ] && RETURN="$SERVICE $FINAL 1"
echo $RESULT | grep -q '[a-z]&[A-Z]' || RETURN="$SERVICE $FINAL 10"
echo $RETURN

스크립트를 실행하면 처음 두 개를 전달하고 10을 출력으로 제공합니다. 일치시키려는 실제 텍스트는 "파일 수신됨"입니다.

답변1

당신은 무엇을 기대할 수 있습니까?

grep -q '[a-z]&[A-Z]'

성냥? 예를 들어, x&Y소문자, 그 뒤에 앰퍼샌드 및 대문자가 일치합니다 .

[a-zA-Z]a와 z 사이의 단일 대문자나 소문자 또는 공백을 일치시키려는 것일 수 있습니다 . 하지만 이는 상황에 따라 다르 locale므로 더 바람직할 수도 있습니다 [[:alpha:]].

그런데 왜 이 수표를 받았는지 모르겠어요. $RESULT주어진 문자열과 비교하는 것이라면 어쨌든 문자가 포함되어 있다는 것을 알 수 있습니다.

마지막으로 비교하려는 문자열 주위에 큰따옴표를 넣는 것이 좋습니다.

관련 정보