tømme kommando i konsolldialogboksen

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 

skriv inn bildebeskrivelse her

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.
  • sleep er et annet problem: å skrive gjennom et rør, dataene er ikke linjebufret, og sleep virker for å gjøre det tydelig.

Legg igjen en kommentar

Din e-postadresse vil ikke bli publisert. Obligatoriske felt er merket med *