Bash 如何在linux中使用if条件

Bash 如何在linux中使用if条件,bash,if-statement,Bash,If Statement,当我在终端以任何等级执行此代码时,它总是返回“您的基本值为6000”。这段代码有什么错误?您需要在= echo "Enter a grade" read grade if test $grade="A" then basic=6000 elif test $grade="B" then basic=5000 else basic=4000 fi echo "Your basic is $basic" 现在,您只需给test命令一个参数,即$grade=“A”,因为空格分隔参数。若您

当我在终端以任何等级执行此代码时,它总是返回“您的基本值为6000”。这段代码有什么错误?

您需要在=

echo "Enter a grade"
read grade
if test $grade="A"
then
  basic=6000
elif test $grade="B"
then
  basic=5000
else
  basic=4000
fi
echo "Your basic is $basic"
现在,您只需给test命令一个参数,即$grade=“A”,因为空格分隔参数。若您在=,然后测试将有3个参数,即(扩展)$grade,=和“A”

因此:


是的,这更接近我自己写的。也可能是“read-p”,即
read-p“输入分数:
#!/bin/bash
echo "Enter a grade"
# Read single char
read -n 1 grade
echo $grade
if [ "$grade" == 'A' ]; then
    basic=6000
elif [ "$grade" == 'B' ]; then
    basic=5000
else
    basic=4000
fi
echo "Your basic is $basic"
echo "Enter a grade"
read grade
if test $grade = "A"
then
  basic=6000
elif test $grade = "B"
then
  basic=5000
else
  basic=4000
fi
echo "Your basic is $basic"