Prosíme přihlašte se nebo zaregistrujte.

Přihlašte se svým uživatelským jménem a heslem.
Vaše pomoc je stále potřeba!

Autor Téma: bash script - odpocitavani  (Přečteno 1827 krát)

deathfish

  • Aktivní člen
  • *
  • Příspěvků: 65
bash script - odpocitavani
« kdy: 16 Listopadu 2012, 21:48:23 »
Prosím pomozte mi s jednoduchým skriptem na odpočítávání, který by zobrazoval odpočet 3 minut.
Našel jsem dva skripty, ale
první  při odpočtu správně zobrazuje jen jednociferné číslo, např 9 vteřin takto: 9... 8... 7.... atd
při odpočtu dvou a víceciferných čísel odpočítává takto např 19 vteřin: 11119.... 11118... 11117..atd
Kód: [Vybrat]
#!/bin/bash
seconds=9
echo -n "cislo je $seconds"
sleep 1


while [ $seconds -ge 0 ]

do
sleep 1
echo -en "\b$seconds"

seconds=$(expr $seconds - 1 )
done

Druhý script zase píše každou vteřinu na nový řádek:
10
9
8
atd...
Kód: [Vybrat]
#!/bin/bash
seconds=10
(
for i in $(seq $seconds -1 1); do
    echo "$i seconds to end...";
    sleep 1;
done;
echo "end!")
sleep 2
Jde některý script překopat tak aby na jednom řádku odpočítal 180 vteřin nebo ještě lépe 3:00 min ?

Vojtěch Trefný

  • Příspěvků: 9307
  • Don Quijote
Re:bash script - odpocitavani
« Odpověď #1 kdy: 16 Listopadu 2012, 23:23:53 »
Kód: [Vybrat]
#!/bin/bash
seconds=19
echo -n "cislo je $seconds"
sleep 1


while [ $seconds -ge 0 ]

do
sleep 1

echo -en "\r`tput el`$seconds"

seconds=$(expr $seconds - 1 )
done

Vysvětlení: "\b" posune kurzor o jedno doleva, takže u jednociferných čísel to funguje hezky -- vypíše se devítka, kurzor se posune doleva a napíše osmičku -- ale u dvouciferných to jaksi nefunguje (vypíše se 11, posune se o jedno doleva a napíše 10, takže máme rázem 110). Já použil "\r", které posune kurzor na začátek řádku a ten jsem pak pomocí "tput el" vymazal.

Minuty: Chceš-li minuty/hodiny atp. tak si ten skript musíš rozšířit o funkci, která z (například) "185 sekund" zjistí kolik to je minut. (Hint: 185 / 60 = 3 a 185 % 60 = 5.)

deathfish

  • Aktivní člen
  • *
  • Příspěvků: 65
Re:bash script - odpocitavani
« Odpověď #2 kdy: 19 Listopadu 2012, 10:53:38 »
děkuji fachá skvělě,
A ještě drobnost existuje nějaká česká stránka s vysvětlením Bash příkazů ?
Něco jako toto ale česky:
Kód: [Vybrat]
http://ss64.com/bash/index.html

ntz_reloaded

  • Lokaj
  • Závislák
  • ***
  • Příspěvků: 3735
  • skill :: ur home erly
Re:bash script - odpocitavani
« Odpověď #3 kdy: 19 Listopadu 2012, 10:57:19 »
ceskejch serialu/stranek o skriptovani v bashi je fakt spousta ... pouzij prosim google
tikejte mi, taky Vam tikam ...
song of the day - openSUSE, openindiana, DuckDuckGo
The noise ain't noise anymore, who's to blame, WHO'S TO BLAME ??


 

Provoz zaštiťuje spolek OpenAlt.