为什么在这个bash命令的括号printf和calculator函数中出现语法错误?

为什么在这个bash命令的括号printf和calculator函数中出现语法错误?,bash,math,syntax,bc,Bash,Math,Syntax,Bc,为什么我在这一行脚本中遇到错误 printf "%.3f\n" "$(bc -l <<< ($sum / $total))" printf“%.3f\n”“$(bc-l这是因为bc-l需要作为单个字符串输入,但是($sum/$total)是不带引号的,并且被拆分为多个单词 您可以使用: printf "%.3f\n" "$(bc -l <<< "($sum / $total)")" printf“%.3f\n”“$(bc-l最好像下面这样做。这样会更清楚

为什么我在这一行脚本中遇到错误

printf "%.3f\n" "$(bc -l <<< ($sum / $total))"

printf“%.3f\n”“$(bc-l这是因为
bc-l
需要作为单个字符串输入,但是
($sum/$total)
是不带引号的,并且被拆分为多个单词

您可以使用:

printf "%.3f\n" "$(bc -l <<< "($sum / $total)")"

printf“%.3f\n”“$(bc-l最好像下面这样做。这样会更清楚

result=$(bc -l <<< ($sum / $total))
printf "%.3f\n" "$result"

result=$(bc-l更接近了,不过现在它在标准中抛出了一个错误:(standard_in)1:语法错误您使用的是
bash
?当我使用
sum=15;total=25;printf“%.3f\n”$(bc-l是和否。这是Hackerrank的一个问题的一部分。阅读讨论,我认为这是一个与我一起的错误问题。与问题无关。这很有效。对于您链接的问题,可以使用
sum=0;total=;而read num;do[-z$total]]和&total=$num | |((sum+=num))来解决;完成result=$(bc -l <<< ($sum / $total))
printf "%.3f\n" "$result"