wyczyść polecenie w oknie konsoli

Mój skrypt bash zawiera polecenie clear, które po wykonaniu przez dialog spowoduje pojawienie się dziwnych liter. Jak mogę nadal używać polecenia clear bez wyświetlania tego wyniku w oknie dialogowym?

Oto przykład, jak to zrobić:

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

Używam dialog czegoś takiego:

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

tutaj wprowadź opis obrazu

Odpowiedź

Możesz przekierować wyjście clear do terminala:

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

clear zapisuje na swoje standardowe wyjście, które (po przekierowaniu w ten sposób) może różnić się od skryptu ”.

Komentarze

  • u mnie prawie działa, ponieważ z jakiegoś powodu, jeśli masz ' sleep ' polecenie również między poleceniem echo ' s okno dialogowe jest całkowicie zniekształcone. po prostu dodaj ' sleep 1 ' między polecenie echo i zobacz, aby je zasymulować.
  • to inny problem: zapisywanie przez potok, dane nie są buforowane liniowo, a sleep działa, aby to uwidocznić.

Dodaj komentarz

Twój adres email nie zostanie opublikowany. Pola, których wypełnienie jest wymagane, są oznaczone symbolem *