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
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, ogsleep
virker for at gøre det tydeligt.