bash脚本读取RSS提要,如果结果大于X,则执行另一个脚本
我在阅读和If程序时有点搞砸了 我正在尝试为Linux创建一个bash脚本,它从rsstail读取经过处理的干净数值输出,如果数值输出大于5.5,那么它将执行我已有的另一个脚本 我正在运行的rsstail的主命令是每3秒检查一次最新的RSS,并使用以下命令获取第一个干净的3-5个字符,这是我需要的数字:bash脚本读取RSS提要,如果结果大于X,则执行另一个脚本,bash,if-statement,awk,while-loop,Bash,If Statement,Awk,While Loop,我在阅读和If程序时有点搞砸了 我正在尝试为Linux创建一个bash脚本,它从rsstail读取经过处理的干净数值输出,如果数值输出大于5.5,那么它将执行我已有的另一个脚本 我正在运行的rsstail的主命令是每3秒检查一次最新的RSS,并使用以下命令获取第一个干净的3-5个字符,这是我需要的数字: rsstail -i 3 -u http://someserver/somefile.xml -n 1 -N | cut -c 3-5 它的输出是一个单一的数字,如 3.7 然后我需要不断地
rsstail -i 3 -u http://someserver/somefile.xml -n 1 -N | cut -c 3-5
它的输出是一个单一的数字,如
3.7
然后我需要不断地比较数值输出,如果它大于5.5,那么执行我已有的另一个脚本。如果不是,则只需继续检查RSTAIL输出是否有大于5.5的值。您可以使用GNU
AWK
来执行此任务。按照以下方式,将您的输出(即具有以下值的单行)管道化
3.7
进入
这将对bash yourscript.sh执行
。请记住,执行操作系统命令,然后返回awk程序。Return命令的退出状态由于您正在使用浮点数执行数值测试,因此可以调用bc
来执行此任务
试一试
我得到第10行:添加时出现意外标记“done”附近的语法错误
afterwhile true
解决了语法错误,抱歉。我在if@lefleflef我修正了我的代码,请检查它现在是否工作
awk '{if($1>5.5){system("bash yourscript.sh")}}'
#!/bin/bash
while true; do
output=$(rsstail -i 3 -u http://someserver/somefile.xml -n 1 -N | cut -c 3-5)
condition=$(echo "($output - 5.5) > 0" | bc)
if [ "$condition" -eq 1 ]
then echo "executing other script"
fi
sleep 3
done