Diretório diff no script bash

0

Eu tenho um script bash que expande dois arquivos (arquivos jar) em dois diretórios e, em seguida, faz um diff das duas pastas. Eu quero o diff para ser canalizado em um arquivo, então eu faço isso no arquivo bash.

diff -r $originalJarExtracted $assembledJarExtracted >target/$diffList

Enquanto isso funciona, ele também pára o script e qualquer coisa depois não é executada. Como posso obter diff para canalizar sua saída para o arquivo e para o script continuar. Eu olhei para as páginas info e man para diff, mas não consegui fazer isso funcionar. Estou executando o script no mac btw.

Apenas para referência, os scripts são no github

    
por Manfred Moser 05.01.2012 / 00:53

1 resposta

5

Palpite: seu script está operando sob set -e (sinônimo: set -o errexit ), o que faz com que o shell saia se algum comando retornar um status diferente de zero (indicando falha convencionalmente). Em caso afirmativo, sairá se diff encontrar alguma diferença, porque diff retornará o status 1 se encontrar diferenças. Se este for o problema, mude essa linha para

diff -r "$originalJarExtracted" "$assembledJarExtracted" >"target/$diffList" ||
[ $? -eq 1 ]

Em seguida, o script só sairá se diff retornar um status diferente de 0 (sem diferença) ou 1 (diferenças), ou seja, somente se houver um erro, como um arquivo ausente.

    
por 05.01.2012 / 01:09

Tags