任何人都可以告诉我这个剧本有什么问题,它不起作用。当我运行它时,屏幕上没有输出/错误。
该脚本用于监视日志文件以检查其中一列的值,如果超过20,则会回显一条消息。
#!/bin/bash
while true ; do
COUNT=`tail -f /monitoring/log.20160121|cut -d" " -f39`
echo $COUNT
if [ $COUNT -gt 20 ] ;then
echo "Count is high"
break
fi
sleep 10
done
答案 0 :(得分:3)
tail -f
没有退出,因此您的脚本会卡在那里。我假设你只对日志的最后一行感兴趣; tail -n 1
就是这么做的。
其他要点:
` `
)$( )
形式;例如,嵌套更容易(( ))
条件构造,它更适合比较数字而不是[ ]
合:
#!/bin/bash
while true; do
count=$(tail -n 1 /monitoring/log.20160121 | cut -d " " -f 39)
echo $count
if (( count > 20 )); then
echo "Count is high"
break
fi
sleep 10
done