사례 프레젠테이션에 범위를 사용하는 방법

사례 프레젠테이션에 범위를 사용하는 방법

나는 다음을 수행해야 한다:

입력 시 레벨을 표시하는 사례 설명을 작성하세요. 루프나 조건이 없습니다.

  • A=90-100, B=80-89, C=70-79, D=60-69, F=0-59

이것이 내가 지금까지 가지고 있는 것입니다:

    echo -n "What is your test score? (in percentage): "
    read percentage 

    case $name in 
    9?) echo "A" ;; 
    8?) echo "B" ;;
    7?) echo "C" ;;
    6?) echo "D" ;;
    5?) echo "F" ;;
    4?) echo "F" ;;
    3?) echo "F" ;;
    2?) echo "F" ;;
    1?) echo "F" ;;
    [0-9]) echo "F" ;;
    *) echo "Please enter another number" 
              read percentage 
    ;;
    esac 

범위(예: 59-0)를 사용하여 설명을 작성하려면 어떻게 해야 하나요?

답변1

이렇게 하면 요구 사항을 충족해야 합니다.

#!/bin/bash

echo -n "What is your test score? "
read score 

case $score in 
    100) echo "A" ;;
    9[0-9]) echo "A" ;; 
    8[0-9]) echo "B" ;;
    7[0-9]) echo "C" ;;
    6[0-9]) echo "D" ;;
    *) echo "F" ;;
esac

처음에는 9[0-9]|100)을 사용했지만 이는 조건문의 규칙을 위반하는 것 같습니다.

101 또는 기타 "범위를 벗어난" 값을 입력하려고 하면 F가 반환됩니다. 나는 이런 일이 결코 일어나지 않을 것이라고 가정하고 있습니다.

답변2

이것은 또한 작동합니다 -

echo -n "What is your test score? (in percentage): "
read per 

case $per in 
([9][0-9]|100) echo "A" ;; 
([8][0-9]) echo "B" ;;
([7][0-9]) echo "C" ;;
([6][0-9]) echo "D" ;;
[0-9]|[1-5][0-9]|59) echo "F" ;;
*) echo "Please enter another number" 
read percentage;;
esac

관련 정보