Como cada script é executado para esperar um valor de variável interna diferente?

0

Procurando por conselhos. Escrevendo um script bash simples. Ele irá verificar a porcentagem de arquivos de receita na pasta a cada 30 minutos. Portanto, sabemos o número total esperado de arquivos e até que horas todos eles devem estar na pasta.

Então fiquei com o valor de anexação "status de verificação". Se a porcentagem de arquivos de receita for igual ou maior que a esperada, o status do conjunto será verificado e enviará um e-mail com os dados atuais como tabela HTML. Assim, cada script é executado anexando dados ao arquivo que será para a tabela HTML.

Exemplo de tabela:

    |     Time     | Files count| Files rate |  Status  |
    |14:31 21.01.18|    18567   |    15,6%   | Verified |
    |15:01 21.01.18|    21402   |    19,2%   |  Failed  |

Não foi possível encontrar a solução de como executar o mesmo script e verificar uma condição diferente. Para mim, a lógica parece ser assim:

se o primeiro script for executado e a taxa de arquivos for igual ou menor que 15% then status = Verificado outro   status = Falha

    if [ $attemptrun -eq 2 ] && [ $filerate -gt 15 ]
    then status=Verified
    else
    status=Failed

Mas como fazer com que cada script adicional seja executado, esperando e verificando uma taxa de arquivo diferente, como 1ª execução = < 15, 2 = < 22, 3 = < 35 etc?

    
por shruk 13.02.2018 / 12:25

1 resposta

0

Tente isto:

 #!/bin/bash

 while IFS='|' read -r _ time count rate status; do
     ((countlines==0)) && continue # skip headers

     time=${time// /} # bash parameter expansion to remove spaces
     count=${count// /} # same thing...
     status=${status// /} # same thing...
     rate=${rate// /}
     echo "time=$time count=$count rate=$rate status=$status"


     if ((${rate%\%} >= 15)) && [[ $status == Verified ]]; then
         status=Verified
     fi

     ((countlines++)) 
 done < file.txt
    
por 13.02.2018 / 12:50

Tags