0

# 当设备温度超过阈值时通过'notify-send'通知用户的程序。

#!/bin/bash

Temp=adb shell cat /sys/devices/platform/omap/omap_temp_sensor.0/temperature
if  [ $Temp -gt 42000 ] 
then
notify-send Temperature "$Temp " -i /usr/share/pixmaps/idle.xpm
cvlc  /home/Xme/Desktop/Beep-263732.mp3
else
echo "Exit"
fi

得到错误为

: integer expression expected

我没有得到$Temp的数据类型,它正在通过设备读取数据,我如何比较整数,我试过if [ [$Temp > 42000] ]没有用。

4

1 回答 1

1

正如我们在评论中所说,这解决了这个问题:

Temp=$(adb shell cat /sys/devices/platform/omap/omap_temp_sensor.0/temperature) | grep -o "[0-9]*")

首先,您没有正确获取号码。请注意,您需要使用

Temp=$(command)

当你使用

Temp=command

然后我们看到您的输入不是整数。我想肯定有一些尾随字符。要删除它们,我建议使用grep -o "[0-9]*",它只匹配给定字符串中的数字。例子:

$ echo "23 " | grep -o "[0-9]*"
23
$ echo "as23.22" | grep -o "[0-9]*"
23
22
$ echo "23" | grep -o "[0-9]*"
23
于 2013-09-12T12:13:41.230 回答