Bourne shell脚本,用于检查服务器是否更新了时间

时间:2012-07-11 14:29:27

标签: shell time sh openwrt

我在运行OpenWRT的TPLink路由器上。 当设备启动时,我想要一个LED打开,直到系统时间从ntp服务器更新。

这是我的方法:

#!/bin/sh

echo 0 > /sys/class/gpio/export
echo out > /sys/class/gpio/gpio0/direction
echo 1 > /sys/class/gpio/gpio0/value

currentDate=$(date +%s)

 while [ $currentDate < 1342016035 ]; do
                echo Time not updated yet
                currentDate=$(date +%s)
done

echo Time updated!

echo 0 > /sys/class/gpio/gpio0/value
echo 0 > /sys/class/gpio/unexport

当我运行它时,我得到“./timescript.sh:11行:无法打开1342016035:没有这样的文件”。 你知道为什么会这样吗? 另一个问题是,这是否有意义,还是处理器在循环中占用而无法更新时间?

提前致谢!!

1 个答案:

答案 0 :(得分:3)

test需要-lt和-gt用于算术

#!/bin/sh

echo 0 > /sys/class/gpio/export
echo out > /sys/class/gpio/gpio0/direction
echo 1 > /sys/class/gpio/gpio0/value

currentDate=$(date +%s)

while [ $currentDate -lt 1342016035 ]; do
            echo "Time not updated yet"
            currentDate=$(date +%s)
done

echo "Time updated!"

echo 0 > /sys/class/gpio/gpio0/value
echo 0 > /sys/class/gpio/unexport