编写脚本以帮助用户计算纳税申报表。提示 用户从键盘输入他/她的收入,然后我们以下 计算规则。在屏幕上显示结果。
- 如果收入低于5000,则不含税
- 如果收入在5000到30000之间,税率为10%
- 如果收入超过30000,税率为20%
这是我的尝试:
#!/bin/bash
read -p "Enter your income tax:" $var1
if [[ $var1 -lt 5000 ]];
then
echo "no tax"
elif [[ $var1 -gt 5000 && $var1 -lt 30000 ]];
then
echo "the tax rate is 10%"
else
if [[ $var1 -gt 30000 ]];
then
echo "the tax rate is 20%"
fi
fi
现在,当我运行程序时,不管我放在那里的数字,它总是说没有税。有人能说出我的代码有什么问题吗?
答案 0 :(得分:2)
将read语句中的$ var1更改为var1
答案 1 :(得分:1)
这是我的解决方案:
#!/bin/bash
echo "Please enter your income: "
read income
if [ $income -lt 5000 ]
then echo "no tax for you"
fi
if [ $income -ge 5000 -a $income -le 30000 ]
then echo "Your tax rate is 10%"
fi
if [ $income -gt 30000 ]
then echo "Your tax rate is 20%"
fi
我查看了你的解决方案并认为你的if / else语句存在问题。结构应该始终是if-elif-else。但你的别人之后有if语句吗?另外,使用bash,你不必像在Haskell这样的函数式语言中使用elif作为第二个if语句。所以你可以简单地做三个if语句。
答案 2 :(得分:0)
read -p "Enter your income tax:" var1
if [[ $var1 -lt 5000 ]];
then
echo "no tax"
elif [[ $var1 -gt 5000 && $var1 -lt 30000 ]];
then
echo "the tax rate is 10%"
else
if [[ $var1 -gt 30000 ]];
then
echo "the tax rate is 20%"
fi
fi
运行正常。 (prog.sh是具有此源的文件)。
$ sh prog.sh
Enter your income tax:6000
no tax
$ sh prog.sh
Enter your income tax:6000
the tax rate is 10%
$ sh prog.sh
Enter your income tax:40000
the tax rate is 20%