王者荣耀 大佬有话说 :
求大佬 求问脚本错在哪里? 东拼西凑的脚本 大佬不要笑!
读取文件日志行数, 如果大于8000 执行一组命令, 如果大于9000 执行另外一组命令,
我执行后,/root/log.txt是空的, 没反应。 直接执行num=`cat /var/log/1.log | wc -l`时可以看到行数的。
求问脚本错在哪里?东拼西凑的脚本大佬不要笑!
#! /bin/sh
proc_num()
{
num=`cat /var/log/1.log | wc -l`
return $num
}
proc_num
number=$?
if [ 8000 -le $number ]
then
echobegin > /root/log.txt
fi
if [ 9000 -le $number ]
then
echo end > /root/log.txt
fi
王者荣耀 大佬有话说 :
苍老实 大佬有话说 : 2020-11-12 15:20
随手写的没有测试,你可以试试
shell当中可以直接写大于号??
那还要那些 lt le gt之类的干啥??
yanaxiao 大佬有话说 :
专业问题要专业回答,楼下来。
tdd 大佬有话说 :
如果是8001 仍然会走8000
第一个判断 你需要判断大于8000且小于9000
Sing1e 大佬有话说 :
#! /bin/sh
proc_num()
{
number =`cat /var/log/1.log | wc -l`
}
proc_num
if [ 8000 -le $number ]
then
echobegin > /root/log.txt
fi
if [ 9000 -le $number ]
then
echo end > /root/log.txt
fi
王者荣耀 大佬有话说 :
tdd 大佬有话说 : 2020-11-12 15:06
如果是8001 仍然会走8000
第一个判断 你需要判断大于8000且小于9000
对 我本来是写的,if [ 9000 -le $number -a $number -lt 10000 ]
但是有问题就缩减了条件, 结果还是不行。
就来问问。
逻辑我知道,大学多少学过,就是语法完全不会了现在。
王者荣耀 大佬有话说 :
Sing1e 大佬有话说 : 2020-11-12 15:08
#! /bin/sh
proc_num()
谢谢 真的好了!
h20 大佬有话说 :
$?是退出值
苍老实 大佬有话说 :
本帖最后由 苍老实 于 2020-11-12 15:33 编辑
num=`cat /var/log/1.log | wc -l`
if (( $num > "8000" && $num < "9000" ));then
echo begin > /root/log.txt
elif (( $num > "9000" ));then
echo end > /root/log.txt
fi
随手写的没有测试,你可以试试
testuserll 大佬有话说 :
return 是返回值,不能超过255,超过255的高位部分被舍去,所以你永远到不了8000