我有 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。