Mitt bash-skript inneholder kommandoen clear som når den kjøres gjennom dialog -kommandoen vil resultere med rare bokstaver. Hvordan kan jeg fremdeles bruke clear -kommandoen uten å se denne utgangen i dialogboksen?
Dette er et eksempel på hvordan du produserer dette:
#!/bin/bash echo "starting..." clear echo "" echo "End"
Jeg bruker dialog slik:
bash /tmp/1.sh | dialog --progressbox 30 80
Svar
Du kan omdirigere utgangen av clear til terminalen:
#!/bin/bash echo "starting..." clear >$(tty) echo "" echo "End"
clear skriver til sin standardutgang, som (når den blir omdirigert på denne måten) kan være forskjellig fra skript «s standardutgang.
Kommentarer
- det fungerer nesten for meg fordi du av en eller annen grunn har ' sleep ' kommando også mellom ekko ' s kommando dialogen fullstendig forvrengt. bare legg til ' sove 1 ' mellom ekkokommandoen og se for å simulere den.
-
sleeper et annet problem: å skrive gjennom et rør, dataene er ikke linjebufret, ogsleepvirker for å gjøre det tydelig.