comando de limpeza na caixa de diálogo do console

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 

insira a descrição da imagem aqui

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.

Comentários

  • quase funciona para mim porque, por algum motivo, se você tiver ' sleep ' comando também entre o comando echo ' s o diálogo completamente distorcido. basta adicionar ' sleep 1 ' entre o comando echo e ver para simulá-lo.
  • sleep é um problema diferente: ao escrever por meio de um pipe, os dados não são armazenados em buffer de linha e sleep age para tornar isso aparente.

Deixe uma resposta

O seu endereço de email não será publicado. Campos obrigatórios marcados com *