성공하지 못하고 다음을 시도했지만 문서를 찾을 수 없습니다.
read Option
case $Option in
[1] ) echo "1" ;;
[2] ) echo "2" ;;
[$'\n'] ) echo "LF" ;;
[0] ) exit ;;
* ) echo "Invalid input" ;;
esac
그러나 다음 방법이 작동합니다.
$ x="
> "
$ if [ "$x" = $'\n' ]; then echo "newline"; fi
newline
답변1
개행 없이 입력의 한 줄만 읽혀 지므로 read
빈 문자열만 확인하려고 합니다.
read Option
case $Option in
1 ) echo "1" ;;
2 ) echo "2" ;;
"" ) echo "LF" ;;
0 ) exit ;;
* ) echo "Invalid input" ;;
esac
[1]
( 1
다른 단일 문자 클래스와 유사하게) 동일한 문자열을 패턴과 일치시킵니다.
답변2
read
벗겨드립니다. 사례 진술 자체가 유효합니다.
#read Option
Option='
'
case "$Option" in
[1] ) echo "1" ;;
[2] ) echo "2" ;;
[$'\n'] ) echo "LF" ;;
[0] ) exit ;;
* ) echo "Invalid input" ;;
esac
#Outputs: LF
답변3
case
비록 외부 프로그램(예 : sed
.
아래 예에서 모든 공백과 인쇄할 수 없는 문자는 공백과 마찬가지로 유효하지 않으므로 모두 리터럴 ""로 바꿨습니다.
case "${Option//[^[:print:]]/ }" in
*\ *)
# Handle error
;;
...
esac