在bash中,检查文件大小是否正在更改,否则执行命令

时间:2016-10-16 00:48:52

标签: bash

我想检查文件大小(在Debian上的bash中),如果它没有增加,请执行命令。我的脚本看起来像这样:

FirstSize=$(du -s /media/USB/km)
echo $FirstSize
sleep 5
SecondSize=$(du -s /media/USB/km)
echo $SecondSize
if [ "$FirstSize" -eq "$SecondSize" ]
then
    echo "size is the same"
    mount -a
    sleep 15
    pkill openRTSP
else
   echo "size is changing"
fi

我收到的输出是:

 135436688 /media/USB/km
    135437444 /media/USB/km
    ./size.sh: 8: [: Illegal number: 135436688 /media/USB/km
    size is changing

你能告诉我我做错了什么吗?

1 个答案:

答案 0 :(得分:4)

您要求bash进行比较" 135436688 / media / USB / km"作为一个数字。您只需要du输出的第一部分。尝试使用cut命令执行以下操作:

FirstSize=$(du -s /media/USB/km | cut -f 1)

(我在cygwin,而不是Debian,所以我不能100%确定这对你有用的东西,但应该让你朝着正确的方向前进。)