循环直到满足条件并写入文件

时间:2019-03-27 10:35:26

标签: linux bash shell

我是Shell脚本的新手...我想每5秒执行一次命令,然后将输出写入当前为json格式的文件,然后使用jq从json读取特定键并将其打印到控制台

我开始使用watch,但是回显watch -n 5 command > myFile.json似乎没有创建文件。还有其他办法吗?

有人可以帮我吗?

1 个答案:

答案 0 :(得分:0)

您可以在睡眠中使用循环,例如:

while true; do command > myFile.json; sleep 5; done

请注意,如果您想附加命令输出到您的json文件,请使用>>代替>

根据条件中断循环:

 while :  
 do 
   command > json_file 
   [[ $(jq_command json_file) != "expected_text" ]] || break 
   sleep 5 
 done