![입력에 문자가 포함되어 있는지 테스트하는 함수를 어떻게 만들 수 있나요? [복사]](https://linux55.com/image/60434/%EC%9E%85%EB%A0%A5%EC%97%90%20%EB%AC%B8%EC%9E%90%EA%B0%80%20%ED%8F%AC%ED%95%A8%EB%90%98%EC%96%B4%20%EC%9E%88%EB%8A%94%EC%A7%80%20%ED%85%8C%EC%8A%A4%ED%8A%B8%ED%95%98%EB%8A%94%20%ED%95%A8%EC%88%98%EB%A5%BC%20%EC%96%B4%EB%96%BB%EA%B2%8C%20%EB%A7%8C%EB%93%A4%20%EC%88%98%20%EC%9E%88%EB%82%98%EC%9A%94%3F%20%5B%EB%B3%B5%EC%82%AC%5D.png)
여기에는 사용자가 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}"