【发布时间】:2016-04-27 16:04:40
【问题描述】:
我正在用 bash 做学校作业,得到了这个代码:
if a < 0
a = a/b
else
a = b/a
fi
作业说我们需要将键盘读取的两个数字相除,并检查第一个数字是否大于数字0。
echo "Write two numbers, with a space, that need to be divided:"
read a b
if a > 0
a = $a / $b
else
a = $b / $a
fi
echo "$a"
我在这里做错了什么?
【问题讨论】:
-
=周围不能有空格,否则 bash 会尝试执行a。 -
shellcheck.net 会自动发现很多此类问题
-
你真的必须在学校作业中使用
bash吗?在perl或python中实现这一点会容易得多。 -
@VrataBlazek, ...我建议将
awk作为理想选择,因为它是 POSIX 的一部分(perl 和 python 都不是)并且具有浮点数学支持。让某人走上 perl 之路似乎很像为黑暗面招募人员。 :) -
@VrataBlazek, ...也就是说,我不确定“更容易”——在语言的整数数学边界内,相关的 bash 语法并不难使用。
标签: bash if-statement