Olá,
Quando quero gerar um LOG de um Script, uso essa parte abaixo...
LOG="/var/log/out-install/${0##*/}".log
exec 1> >(tee -a $LOG)
exec 2>&1
Ocorre que ele cria o LOG com toda a saída da tela...
Bem, pensei em criar algo que fosse condicional e fizesse um teste. A partir deste resultado ele execute ou não o resto do Script
Mas queria que o LOG não fosse o que saiu em tela em caso de sucesso e sim, apenas uma informação, como OK. Mas caso fosse FALHA ai si sairia tudo
Fiz algo mais ou menos assim...
#!/bin/bash
LOG="/var/log/out-install/${0##*/}".log
exec 1> >(tee -a $LOG)
exec 2>&1
sudo apt update
if [ $? -eq 0 ]; then
echo ""
echo Executar UPGRADE e DIST UPGRADE
echo ""
LOG="/var/log/out-install/${0##*/}-SUCESS".log
sudo apt upgrade -y ; sudo apt dist-upgrade -y
else
echo ""
echo EXECUÇÃO FAIL
echo ""
LOG="/var/log/out-install/${0##*/}-ERROR".log
exec 1> >(tee -a $LOG)
exec 2>&1
fi
Porém não consigo o resultado desejado.
Alguém pode me explicar a razão, e me ajudar a atingir o cenário desejado?