Portál AbcLinuxu, 16. května 2025 02:54
for (( i=0; i<10; i++ )) do echo -ne "$i\r" sleep 0.100 doneJde neco takoveho udelat i pokud vypisuji treba nejakou funkci s vice radky nebo nejaky vetsi blok? Ted pouzivam v nejakem cyklu na zacatku clear a tak kdyz posunu obrazovku posuvnikem v terminalu, tak je to tam nescetne krat vypsano, chtela bych aby se to chovalo jako u toho prikladu a vysledek byl v terminalu jen jeden ktery by se prepisoval. Dekuji M.
Řešení dotazu:
up=$(tput cuu1) echo ${up}bleblePro detaily viz tput(1) a terminfo(5).
for (( i=0; i<10; i++ )) do echo "$i" echo "$i" echo "$i" echo "$i" echo "$i" sleep 0.100 doneMoc děkuji. M.
To je opravdu takový problém namísto echo $up napsat echo $up$up$up$up$up, nebo kolikrát to tam má být?Problem to neni, ale nic to nevypisuje
up=$(tput cuu1) for (( i=0; i<10; i++ )) do echo $up$up$up$up$up sleep 0.100 done
up=$(tput cuu1)
for (( i=0; i<10; i++ ))
do
echo $up$i$up$i$up$i$up$i$up$i
sleep 0.100
done
exit
up=$(tput cuu1) # trocha mista, aby se nesmazal predchozi vypis # (stejne radku jako ve vypisu -- je jich 6) echo -e "\n\n\n\n\n" for (( i=0; i<10; i++ )) do # posun nahoru o 6 radku # 1. 2. 3. 4. 5. 6. echo "$up$up$up$up$up$up" # to co chces vypsat echo "1. radek: $i" echo "2. radek: $i" echo "3. radek: $i" echo "4. radek: $i" echo "5. radek: $i" # tady ti kurzor odskoci na 6. radek sleep 0.100 done
Tiskni
Sdílej:
ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.