Shell错误:使用bc时出现意外重定向

时间:2013-10-15 19:53:45

标签: shell redirect error-handling printf bc

错误发生在中风:

printf "%15s\t%5d\t%5.2f%%\n" bc <<< "scale=2; 100 * $mac / $totals" > result

我无法理解。在bc之前和$ totals#34之后;是标志`

2 个答案:

答案 0 :(得分:1)

printf "%15s\t%5d\t%5.2f%%\n" $(bc <<< "scale=2; 100 * $mac / $totals") > result
                              ^^                                      ^

答案 1 :(得分:1)

您没有致电bc。字符串bc只是printf的3个预期参数中的第一个。当你的shell将<<<识别为printf的第二个参数所在的重定向运算符时,它会抛出错误。

我怀疑你想要$(bc <<< "scale=2; 100 * $mac / $totals"),但是不清楚printf应该是哪个参数(尽管它看起来应该是%5.2f占位符的第三个参数),或者其他两个论点应该是什么。