Bash Help com o Until Loop

4

Espero que você possa me apontar na direção certa. Eu tenho um script que executa o openvas via CLI.

Agora você precisa executar outro comando para ver o status dos trabalhos. O total de tarefas será sempre diferente. Por exemplo, um dia haverá 7 exames no próximo, haverá 13.

Eu preciso que o script pause até que todas as saídas digam Concluído.

Veja abaixo a saída do comando.

omp -u admin -w admin -h 127.0.01 -p 9390 -G
7ee0ef08-686e-4ad6-b826-08938fc8b694  Running 28%  192.168.0.10
fa7230f9-6367-4db6-8eb5-f6368375d577  Running 94%  192.168.0.23
fbc4e409-e72d-4749-861d-db60ed55693b  Done         192.168.0.25
9e0f2e40-2da4-4ef6-af6f-9ab8cfbf9902  Running  1%  192.168.0.252
492c7462-a75e-4d44-b5dc-5c9af27c9e07  Running  1%  192.168.0.253

No meu script bash eu estou usando o seguinte

until omp -u admin -w admin -h 127.0.01 -p 9390 -G | grep "Done";
done

Agora, quando o script chegar ao estágio "até". Eu recebo o seguinte erro

./Pen-test-automation.sh: line 226: syntax error near unexpected token 'Done'
./Pen-test-automation.sh: line 226: 'Done'

Ajuda por favor:)

    
por Alex Harding 23.09.2016 / 09:07

1 resposta

5

Você precisa adicionar do some_command :

until omp -u admin -w admin -h 127.0.01 -p 9390 -G | grep "Done"
do
    :
done

Os dois pontos, : , são apenas um comando não operacional.

Exemplo mais simples

Observe que isso dá o erro que você vê:

$ until echo $RANDOM | grep 5; done
bash: syntax error near unexpected token 'done'

Se adicionarmos do e um comando de espaço reservado, como : , o loop será executado corretamente:

$ until echo $RANDOM | grep 5; do : ; done
15857
    
por John1024 23.09.2016 / 09:18