Portál AbcLinuxu, 10. května 2025 02:07
WIDTH=$(tput cols)šířku terminálu, ale nevím jak mám pohlídat změnu velikosti terminálu, pokud okno terminálu zvetším, není zobrazení zprávne, neporadí někdo? Díky
Řešení dotazu:
#!/bin/bash trap 'get_window_size' WINCH # trap when a user has resized the window get_window_size() { _WINDOW_X=`tput lines` _WINDOW_Y=`tput cols` echo "X: $_WINDOW_X" echo "Y: $_WINDOW_Y" return 0 } while read ALINE do echo "Read: '$ALINE'" done
Neber ma zle, ale:
bash -c "help trap"
trap -l
man 7 signal
V podstate trap sleduje jemu zadany signal a na zaklade neho sa vykona rad akcii, ak su dake zadefinovane. Vo funkcii vyssie je to vypisanie rozmerov okna terminalu.
echo $COLUMNS
Funkcne pre vypisanie hodnoty poctu znakov na sirku ( rovnako ako echo $LINES , len pre pocet riadkov ) len pri interaktivnom shell-i !!! V skriptoch to nebude fungovat. Ibaze by sa shebang nastavil na #! /bin/bash -i . Takze to moje riesnim nie je a zial neviem to zmenit. :)
TERM=xterm bashA celoobrazovkové programy jako vim fungují dobře jen s velkým oknem a i tak používají pevně daný počet řádků a sloupců. Ale ten bash stále blbne. Když píšu dlouhý příkaz přes konec řádku, místo nového řádku začne přepisovat začátek. Myslel jsem si, že seriák je prostě přenosová vrstva pro proudy znaků, takže když je na jedné straně aplikace (shell, vim, cokoli) a na druhé straně xterm, tak že by to mělo být stejné jako jakýkoli jiný terminál. Tak pardon, že se přiživuju na jiné otázce, ale když už je to tu, tak jsem si nemohl nevzpomenout.
Tiskni
Sdílej:
ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.