#Program,当设备温度超过阈值时,通过'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 的数据类型,它正在通过Device读取数据,我如何比较整数,我试过if [ [$Temp > 42000] ]
没有用。
答案 0 :(得分: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