msoliver
(usa Debian)
Enviado em 12/07/2021 - 00:32h
Minions escreveu:
msoliver escreveu:
tar -tf arquivo5.tar &> /dev/null && echo ok || echo erro
ok
Essa forma reduzida (tar xvf arquivo.tar.xz &> /dev/null && echo ok || echo erro) funcionou porém:
1- Tem como na parte do erro visualizar a saída do erro do tar?
Testei assim:
tar xvf arquivo.tar.xz 2> erro.txt && echo "OK" || { echo "erro" ;cat /tmp/erro.txt; rm -Rf erro.txt;exit;
Não está caindo no => echo “OK” mais extra o arquivo .tar.xz . Agora se roda o tar com nome errado do arquivo cai no => echo "erro" …
2- Essa exceção para o tar só funciona da forma reduzida do if ou podemos usar a forma ampla?
tar xvf arquivo.tar.xz &> /dev/null
if [ "$?" == "0" ]; then
echo "OK"
else
echo "erro"
fi
Desta forma ampla do if fica melhor para estuda e entender o comando.
Minions, boa noite.
Para "verificar" o erro, direcione a saída de ERRO (STDERR), para um arquivo,
Exemplo:
ls arquivo_não_existe 2> erro.txt && echo OK || { echo ERRO;cat erro.txt;}
Seu comando, provavelmente funcional:
tar xvf arquivo.tar.xz 2> erro.txt && echo "OK" || { echo "erro" ;cat erro.txt; rm -Rf erro.txt;exit;}
Note que para usar mais de um comando na sintaxe reduzida, coloque entre { }, e os comandos separados por ;
----------------------------------------------------------------------------------------------------------------
2- Essa exceção para o tar só funciona da forma reduzida do if ou podemos usar a forma ampla?
Sim, funciona, mas, sugiro simplificar:
if tar xvf arquivo.tar.xz &> /dev/null; then
echo "OK"
else
echo "erro"
fi
----------------------------------------------------------------------------------------------------------------
Desta forma ampla do if fica melhor para estuda e entender o comando.
É uma questão de gosto....
Para testes simples, prefiro a forma "reduzida"
______________________________________________________________________
Importante: lynx --dump goo.gl/a9KeFc|sed -nr '/^[ ]+Se/,/dou.$/p'
Att.: Marcelo Oliver
______________________________________________________________________