1

私は何かをしたい..マークが80-100の間の場合、マークが70-79の間の場合、A +を表示します。

if-elif-fi ではなく「case in esac」でやりたい

しかし、場合によっては複雑な表現を行うにはどうすればよいですか

echo “enter mark”
read mark
case $mark in
(( mark>=80 && mark<=100 ))) echo “A+”
..
..
..
esac

私はこれを試しました。if-elif-fi で簡単ですが、「ケース」で何をすべきかありがとうございます。

4

3 に答える 3

1

条件が簡単な場合に使用

if [[ ${mark} -ge 80 && ${mark} -le 100 ]]; then
        echo "A+"
fi

それでもケースが必要な場合は、パターンを指定する必要があります

case ${mark} in
8[0-9]|9[0-9]|100)
        echo  "A+"
esac
于 2013-03-30T19:15:02.010 に答える
0

通常の POSIX っぽいシェルでは:

echo "enter mark"
read mark
case "$mark" in
([89][0-9]|100) echo "A+";;
(7[0-9])        echo "Grade";;
(6[0-9])        echo "Grade";;
...
esac

式の先頭の左括弧はオプションです。

于 2013-03-30T19:36:21.720 に答える