Mijn bash-script bevat het clear
commando, dat wanneer uitgevoerd via dialog
commando zal resulteren met vreemde letters. Hoe kan ik nog steeds het clear
commando gebruiken zonder deze uitvoer in het dialoogvenster te zien?
Dit is een voorbeeld van hoe dit te produceren:
#!/bin/bash echo "starting..." clear echo "" echo "End"
Ik “gebruik de dialog
ongeveer zo:
bash /tmp/1.sh | dialog --progressbox 30 80
Antwoord
Je zou de uitvoer van clear
kunnen omleiden naar de terminal:
#!/bin/bash echo "starting..." clear >$(tty) echo "" echo "End"
clear
schrijft naar zijn standaarduitvoer, die (wanneer omgeleid op deze manier) kan verschillen van de script “s standaard output.
Reacties
- het werkt bijna voor mij, want om de een of andere reden heb je ' sleep ' commando ook tussen echo ' s commando de dialoog volledig vervormd. voeg gewoon ' sleep 1 ' toe tussen het echo-commando en kijk om het te simuleren.
-
sleep
is een ander probleem: als je door een pipe schrijft, worden de gegevens niet in een lijn gebufferd, en desleep
maakt dat duidelijk.