Sucesso do Script de Teste combinando linhas de saída [closed]

0

Eu tenho um script que verifica uma pasta e gera três linhas:

1st line : Changes to the subfolders 2nd line : Changes to the number of files 3rd line : Changes of file size in the folder

Este é um exemplo de saída:

1 sub-folders added Number of files didn't change Files size didn't change

Eu quero usar um comando para verificar a saída linha por linha e testar o script.

Algo como

line 1 == "1 sub-folders added" && line 2 == "Number of files didn't change" && line 3 == "Files size didn't change" then print success if it matches.

Qual comando pode fazer isso?

Obrigado

    
por erans 07.11.2017 / 22:10

1 resposta

1

Você pode usar head e tail para obter as linhas e valores correspondentes.

Exemplo:

OUTPUT='yourcommand' ; if [ "'echo \"$OUTPUT\" | head -n 1'" = "1 sub-folders added" ] && [ "'echo \"$OUTPUT\" | head -n 2 | tail -n 1'" = "Number of files didn't change" ] && [ "'echo \"$OUTPUT\" | tail -n 1'" = "Files size didn't change" ]  ;then echo "success" ; else echo "error" ; fi

(não tenho certeza sobre as palavras-chave didn't ; talvez seja necessário escapar do apóstrofo com uma barra invertida. Por exemplo, \' ).

Parece que você queria tudo de uma só vez, então é isso.

Esteja ciente de que sua primeira linha tinha um espaço antes do número '1'; você pode querer modificar sua saída ou este script.

    
por 07.11.2017 / 22:55

Tags