尝试在 Bash 脚本中添加变量时出现“无效算术运算符”错误

尝试在 Bash 脚本中添加变量时出现“无效算术运算符”错误

我有 Python 背景,这是我的第一个简单的 Bash 脚本,但它不起作用。我很困惑。

#!/bin/bash
RTCHOST='192.168.0.143'
PANEL1=$(client read-value --host $RTCHOST --name dc_1)
echo Panel1: $PANEL1
PANEL2=$(client read-value --host $RTCHOST --name dc_2)
echo Panel2: $PANEL2
PANELCONSUMPTION=$(($PANEL1 + $PANEL2))
echo Consumption: $PANELCONSUMPTION

当我运行脚本时,出现语法错误:

invalid arithmetic operator

怎么了?

答案1

我猜$PANEL1$PANEL2是浮点数。但是,Bash 只能处理整数,而不能处理浮点数,如算术扩展。如果您尝试对浮点数求和,则会出现错误invalid arithmetic operator

只需在这里尝试一下:

#!/bin/bash
A='5'
B='6.4'
C=$(($A + $B))
echo $C

此 Stack Overflow 线程中描述了如何添加浮点数:如何在 Bash 脚本中添加数字?

本质上,您可以使用外部实用程序(例如bc)来执行本例所示的操作:

#!/bin/bash
A='5'
B='6.4'
C=$(echo $A + $B | bc) 
echo $C

此操作有效并返回预期值 11.4。

相关内容