rensa kommandot i konsoldialogrutan

Mitt bash-skript innehåller kommandot clear att när det körs via dialog -kommandot kommer att resultera med konstiga bokstäver. Hur kan jag fortfarande använda kommandot clear utan att se denna utdata i dialogrutan?

Detta är ett exempel på hur man producerar detta:

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

Jag använder dialog så här:

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

ange bildbeskrivning här

Svar

Du kan omdirigera utdata från clear till terminalen:

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

clear skriver till sin standardutgång, som (när den omdirigeras på detta sätt) kan skilja sig från script ”s standardutdata.

Kommentarer

  • det fungerar nästan för mig, för av någon anledning om du har ' sömn ' kommando också mellan echo ' s kommando dialogrutan helt förvrängd. lägg bara till ' sov 1 ' mellan ekokommandot och se för att simulera det.
  • sleep är ett annat problem: att skriva genom ett rör, data är inte linjebuffrad och sleep fungerar för att göra det tydligt.

Lämna ett svar

Din e-postadress kommer inte publiceras. Obligatoriska fält är märkta *