Linux Shell-如何将变量分配给二进制表达式?

Linux Shell-如何将变量分配给二进制表达式?,linux,bash,shell,command-line,Linux,Bash,Shell,Command Line,我有以下代码: TEMP1=$(awk '$12 == "beacon_server" {print}' < numbers2.log | awk -v var="$i" '{total += $var} EN D {print total/NR}') 错误消息告诉我存在一个非整数参数-> expr:非整数参数 如何解决此错误?错误消息意味着其中一个参数不是整数,要查找哪个参数并解决此问题,您必须显示变量内容,因为没有提供文件numbers2.log,我们无法找到值 回声变量 ec

我有以下代码:

TEMP1=$(awk '$12 == "beacon_server" {print}' < numbers2.log | awk -v var="$i" '{total += $var} EN    D {print total/NR}')
错误消息告诉我存在一个非整数参数-> expr:非整数参数


如何解决此错误?

错误消息意味着其中一个参数不是整数,要查找哪个参数并解决此问题,您必须显示变量内容,因为没有提供文件numbers2.log,我们无法找到值

回声变量

echo "TEMP1=$TEMP1"
...

计算浮点值的步骤

exit | awk "END{ print 100 - $TEMP1 - $TEMP2 - $TEMP3 - $TEMP4 }"


问题不是间接扩展,而是使用带expr的浮点数注意awk命令中的print total/NR。这将如何导致问题?此外,我还可以使用浮点来解决这个问题?expr命令是有限的,只能计算整数EXIT |是关闭awk awk“…”的输入重定向declare -p ${!TEMP*}
exit | awk "END{ print 100 - $TEMP1 - $TEMP2 - $TEMP3 - $TEMP4 }"
bc -l <<<"100 - $TEMP1 - $TEMP2 - $TEMP3 - $TEMP4"