ryd kommando i konsoldialog

Mit bash-script indeholder kommandoen clear, som når den udføres via dialog -kommandoen resulterer med mærkelige bogstaver. Hvordan kan jeg stadig bruge kommandoen clear uden at se dette output i dialogen?

Dette er et eksempel på, hvordan man producerer dette:

#!/bin/bash echo "starting..." clear echo "" echo "End" 

Jeg bruger dialog sådan:

bash /tmp/1.sh | dialog --progressbox 30 80 

indtast billedebeskrivelse her

Svar

Du kan omdirigere output fra clear til terminalen:

#!/bin/bash echo "starting..." clear >$(tty) echo "" echo "End" 

clear skriver til sin standardoutput, som (når den omdirigeres på denne måde) kan være forskellig fra script “s standard output.

Kommentarer

  • det virker næsten for mig, fordi du af en eller anden grund har ' sleep ' kommando også mellem ekko ' s kommando, dialogen er fuldstændig forvrænget. tilføj bare ' sleep 1 ' mellem ekkokommandoen og se for at simulere den.
  • sleep er et andet problem: at skrive gennem et rør, dataene er ikke linjebufret, og sleep virker for at gøre det tydeligt.

Skriv et svar

Din e-mailadresse vil ikke blive publiceret. Krævede felter er markeret med *