while ! grep "the line you're searching for" /path/to/the.file
do sleep 10; done
for each in {01..10} ; do ./sb0$each/tomcat_sb0$each start;done
Esta solução tem um loop while
que continuará enquanto a linha que você está procurando não for encontrada no arquivo. O loop contém apenas um sleep
de 10 segundos, para que ele verifique a cada dez segundos a linha desejada. Obviamente, você pode definir isso como quiser.
O grep
procura um padrão em um determinado arquivo e retorna falso se nada corresponder ao padrão. O !
significa não, e como não false = true, o loop continua enquanto o comando grep
retornar false.
Por exemplo, se você estiver procurando a linha iniciar os aplicativos agora, chuck no arquivo /var/tmp/foo.txt , pareceria
while ! grep "start the apps now chuck" /var/tmp/foo.txt;
Se a linha existir, a resposta não terá comprimento zero, então a condicional retornará false e o loop sairá.