I'm completely blind because the console is blank as the bash script executes.
Você pode querer resolver o problema de uma maneira diferente: execute o script bash em segundo plano, e execute less /tmp/box-setup.log
e pressione F para continuar atualizando a tela à medida que as linhas são adicionadas ao arquivo que está assistindo (como tail -f
) .
Se a execução do script em segundo plano for um problema, use tmux
ou screen
para obter várias sessões multiplexadas em uma conexão ssh. Use o mesmo comando less
em outro shell.
O problema original:
tee
pode copiar para vários destinos. Torne um deles o terminal, usando o arquivo /dev/tty
special. Eu acho que sempre se refere ao controle do processo atual. Ou provavelmente melhor, para /dev/stderr
, pois o stderr de tee
ainda está conectado ao stderr do shell. (Isso permite silenciar o script com & > / dev / null).
exec &> >(tee /dev/stderr "/tmp/box-setup.log" | logger -t box-setup)
BTW, isso é equivalente, mas é mais eficiente que (tee /dev/stderr | tee "/tmp/box-setup.log" | logger ...)
.
Seria possível usar alguma clonagem do descritor de arquivo para fornecer tee
do stdout do script original, em vez de stderr.