EOF 内的循环 - UNIX 脚本

EOF 内的循环 - UNIX 脚本

我正在编写一个脚本,以便当我们在日志中发现错误时自动启动应用程序。

所以

#/bin/bash

if [ grep -c 'error' logs -eq 0 ] ;then
  exit
else

start <<EOF ## start is  a script which starts the application

7 
c

问题是,运行“start”后,我需要输入 7,并且每当脚本以“c-continue s-stop”状态停止时,我都需要不断按 c 直到“start”获得成功运行的状态。我该怎么做?

如何在 EOF 内插入循环或以任何其他方式?

答案1

怎么样:

{ echo 7; yes c; } | start

使用分组结构允许 2 个命令的输出通过管道传输到您的脚本中。

答案2

我的增强@glennjackman 的回答

#!/bin/bash

grep -q 'error' logs   &&   { echo 7; yes c; } | start

相关内容