입력에 문자가 포함되어 있는지 테스트하는 함수를 어떻게 만들 수 있나요? [복사]

입력에 문자가 포함되어 있는지 테스트하는 함수를 어떻게 만들 수 있나요? [복사]

여기에는 사용자가 Enter 키를 누른 후 데이터를 입력하는지 테스트하기 위한 일련의 예제가 있습니다.

echo -n "Type a digit or a letter > "
read character
blank=""
if  [ "$character" != "$blank"]; then
        echo "You typed something"
else
    echo "Enter something"
fi

위의 코드는 변수에 아무것도 포함되어 있는지 테스트하기로 되어 있지만 제대로 작동하지 않는 것 같습니다. 도움이 필요하십니까? 고마워하는.

답변1

[ "$character" ]단순히 문자열이 0이 아닌지 테스트하는 데 사용할 수 있으며 이는 더 긴 형식과 동일합니다 [ -n "$character" ]. 또는 [ -z $character ]문자열이 0인지 테스트합니다.

그러나 대화형 스크립트에서 실제로 필요한 것은 사용자가 재정의할 수 있는 변수에 일부 기본값을 설정하는 것입니다. 이것이 의도라면 테스트를 피하고 매개변수 확장을 사용할 수 있습니다.

read character
echo "character is set to ${character:-default}"

관련 정보