Meu script bash contém o comando clear, que quando executado por meio de dialog resultará com letras estranhas. Como ainda posso usar o comando clear sem ver esta saída na caixa de diálogo?
Este é um exemplo de como produzir isso:
#!/bin/bash echo "starting..." clear echo "" echo "End"
Estou usando o dialog mais ou menos assim:
bash /tmp/1.sh | dialog --progressbox 30 80
Resposta
Você pode redirecionar a saída de clear para o terminal:
#!/bin/bash echo "starting..." clear >$(tty) echo "" echo "End"
clear grava em sua saída padrão, que (quando redirecionada desta maneira) pode ser diferente da saída padrão do script.
sleepé um problema diferente: ao escrever por meio de um pipe, os dados não são armazenados em buffer de linha esleepage para tornar isso aparente.