我试图在" line"格式为###。###
示例数据行:
Query_time: 188.882
当前脚本:
#!/bin/bash
while read line; do
if [ $(echo "$line" | cut -d: -f2) -gt 180 ];
then
echo "Over 180"
else
echo "Under 180"
fi
done < test_file
我得到的错误:
./calculate: line 4: [: 180.39934: integer expression expected
答案 0 :(得分:2)
如果你有:
.allowUserInteraction
这个表达式:
line='Query_time: 188.882'
由于BASH无法处理浮点数,因此会给出错误$(echo "$line" | cut -d: -f2) -gt 180
。
您可以使用此awk命令:
invalid arithmetic operator
答案 1 :(得分:1)
你可以使用这个awk:
$ echo Query_time: 188.882 | awk '{ print ($2>180?"Over ":"Under ") 180 }'
Over 180
它采用第二个空格分隔字段($2
)并使用条件运算符输出(如果它已经结束或在下(小于或等于)180。