【发布时间】:2018-09-18 19:58:18
【问题描述】:
我正在为课堂编写一个简单的 bash 计算器,并且几乎完成了,但我遇到了两个问题:
我正在使用 if/then 参数来尝试处理除以零错误。我继续从脚本的这一部分收到错误
我使用 python 返回非整数,它适用于除除以外的所有操作。我不确定为什么这一特定操作不起作用。
我查看了它在屏幕顶部给我的所有帖子,我还在谷歌上查询了 site:stackoverflow.com 的一些标签,但没有找到任何可以解决这些问题的东西。如果我在错误的论坛或已经回答 - 这是我第一次使用该网站 - 所以我提前道歉。
任何见解都会很有帮助。提前致谢!
以下是部分:
问题 1:如果命令返回错误,我将如何修复以使其在除以零时退出?
if [ $n3 -eq 4 $$ $n2 -eq 0 ]
then
echo "Oops, cannot divide by zero. Your answer is undefined."
如果
第一个问题结束。
问题2:下面的等式不输出非整数,(例如1除以3显示0,我希望它显示0.333或类似),为什么?
4)
quotient=$(python -c "print $n1/$n2")
echo "The quotient of $n1 and $n2 is $quotient"
;;
问题区域 2 结束。
*)
echo "Invalid Option. Pick a number between 1-4 for your operator."
;;
esac
【问题讨论】:
-
对于#1,您可以使用
[ "$n3" -eq 4 ] && [ "$n2" -eq 0 ]而不是$$,但是问题2 是什么意思?它输出什么,你期望什么? (顺便说一句,SO 在每个帖子一个问题时效果更好。请参阅One post with multiple questions or multiple posts?) -
感谢其他人,如果我输入 1 除以 3,它会得到 0。我希望它提供 .333 或等效值。亲切的问候,将
-
啊,好吧,您的意思不是“下面的等式确实输出非整数”,而是“它从不输出非整数”
-
没错。抱歉应该更清楚。我编辑了最初的线程。这似乎有问题,因为据我所知,它与其他三个操作的参数相同。
-
考虑附议的“每个问题单独发布”指南。另请参阅minimal reproducible example 指南:问题中的代码应该是尽可能短的代码,它实际上可以工作(无需更改)以展示该问题所关注的问题。如果您可以取出
prints,或者硬编码特定值而不是使用read,但问题仍然存在,您应该将它们取出。