【发布时间】:2014-10-09 09:35:47
【问题描述】:
尝试运行 bash 脚本,虽然有些事情正常,但我收到以下消息:
line 34: unexpected EOF while looking for matching `)'
这是代码,我已经标记了有问题的行(在斜边法中):
#!/bin/bash
# Bash Script Calculator
# -----------------------------------------------------
#
#
#
# -----------------------------------------------------
a=$1
op="$2"
b=$3
if [ $# -lt 3 ]
then
echo "$0 num1 opr num2"
echo "Operators: +,-,x,/"
exit 1
fi
case "$op" in
+) echo $(( $a + $b ));;
-) echo $(( $a - $b ));;
x) echo $(( $a * $b ));;
/) echo $(( $a / $b ));;
hyp) hypotenuse;;
area) area;;
*) echo "Error: Not a listed operator"
echo "If using multiplication, use "x"";;
esac
hypotenuse()
{
hyp=$(bc -l << EOF #LINE 34
scale = 9
sqrt ( $1 * $1 + $3 * $3 )
EOF
)
echo "$hyp"
}
area()
{
area=$(echo "scale=2;3.14 * ($a * $a)" | bc)
echo "$area"
}
我错过了什么吗?我花了一些时间在 Google 等上查找内容,似乎没有其他信息告诉我。
感谢您的帮助!
【问题讨论】:
-
您是否通过shellcheck.net 运行过这个?它正确地指出了错误(以及其他几个错误)。
-
是的,你确实错过了一些东西:某处的结束分隔符。
-
@Kaz, ...好吧,分隔符在那里;只是因为前面的人物,它没有被识别。
-
@CharlesDuffy +1 for shellckeck.net
标签: bash