gpt4 book ai didi

linux - Bash/Linux if elif else 问题

转载 作者:太空狗 更新时间:2023-10-29 12:25:23 26 4
gpt4 key购买 nike

目前正在研究我的 bash 技能。我已经根据导师给我的 if/elif/else 完成了一些事件,但无法确定下面的事件。

基本上,我的任务是根据成绩的输入输出以下内容。 低于 40% = 不及格 40% 到 59% = 通过 60% 到 69% = 优异 70% 及以上 = 优异

它似乎被第一个 elif 捕获了,将分数显示为低于 70 的分数并且不检查其他分数,当我也更改顺序时它给出相同的结果。

echo "Please enter your grade"
read GRADE
echo

if [ $GRADE -ge 70 ]; then
echo "Well done, you got a distinction"

elif [ $GRADE -ge 60 ] || [ $GRADE -le 69 ]; then
echo "Well done, you got a merit"
elif [ $GRADE -ge 40 ] || [ $GRADE -le 59 ]; then
echo "Well done, you got a pass"
else
echo "Unfortunately you failed"
fi

最佳答案

有点不寻常的解决方案

#bash 4.0+
while read -r -p 'Grade? (h-help)> ' grade
do
case "$grade" in
q) echo "quitting..." ; exit 0 ;;
h) echo "Enter numeric value (0..100) or q for quit" ;&
'') continue ;;
*[!0-9]*) echo "Must be numeric value" ; continue ;;
esac
case 1 in
$((grade > 100)) ) echo "impossible" ;;
$((grade >= 70)) ) echo "distinction" ;;
$((grade >= 60)) ) echo "merit" ;;
$((grade >= 40)) ) echo "pass" ;;
*) echo "fail" ;;
esac
done

关于linux - Bash/Linux if elif else 问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43077885/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com