Portál AbcLinuxu, 11. května 2024 02:04


Dotaz: bash script (odpocitavani, vstup uzivatele, editace souboru)

25.10.2009 17:57 Jcas | skóre: 19 | blog: linux v rukou ...
bash script (odpocitavani, vstup uzivatele, editace souboru)
Přečteno: 855×
Odpovědět | Admin
Zdravím Může mi prosím někdo poradit jak se dělá: Výzva na reakci uživatele + odpočítávání.
echo "zvol yes or no"
read x
Toto je dobrý, ale má to chybu, že vždy musím stisknout enter. Já bych chtěl, aby se po určité době samo zvolilo 'no' a script pokračoval dál. A kdyby ještě bylo vidět odpočítávání, tak by to bylo krásné.

editace souboru - Aby script nahradil slovo nebo řádek v nějakém souboru. A ještě lepší by bylo, kdyby script jeden řádek zakomentoval a druhej odkomentoval.

děkuji mockrát

Nástroje: Začni sledovat (1) ?Zašle upozornění na váš email při vložení nového komentáře.

Odpovědi

25.10.2009 18:37 12345 | skóre: 41 | blog:
Rozbalit Rozbalit vše Re: bash script (odpocitavani, vstup uzivatele, editace souboru)
Odpovědět | | Sbalit | Link | Blokovat | Admin
  1. Příště prosím nemíchej do jedné otázky více problémů.
  2. read má parametr -t (viz manuál). Například:
    echo "zvol yes or no"
    read -t 5 x || x=no
  3. Na automatické nahrazování nebo jiné úpravy jsou přímo stvořeny sed nebo awk.
25.10.2009 18:42 moira | skóre: 30 | blog: nesmysly
Rozbalit Rozbalit vše Re: bash script (odpocitavani, vstup uzivatele, editace souboru)
Odpovědět | | Sbalit | Link | Blokovat | Admin
Čekání jen po určitou dobu: read -t
Odpočítávání: google bash countdown
Editace soubor: sed
Překladač ti nikdy neřekne: "budeme kamarádi"
25.10.2009 19:28 Jcas | skóre: 19 | blog: linux v rukou ...
Rozbalit Rozbalit vše Re: bash script (odpocitavani, vstup uzivatele, editace souboru)
Odpovědět | | Sbalit | Link | Blokovat | Admin
děkuji

Takže jestli jsem to pochopoil, tak to odpočítávání budu muset naprogramovat pomocí řídící struktury until-do-done

25.10.2009 20:11 Jcas | skóre: 19 | blog: linux v rukou ...
Rozbalit Rozbalit vše Re: bash script (odpocitavani, vstup uzivatele, editace souboru)
Odpovědět | | Sbalit | Link | Blokovat | Admin
Takze vysledky hledaní jsou, že stačí vědět, kdy použít cyklus. Teď už jenom vyhledat, jak přepsat znak (proměnou) aby se nevypisoval stále nový řádek a odpočítávání je na světě.
y=10

while [ $y -ge 0 ]

do
echo $y 
y=$(expr $y - 1)
done
25.10.2009 20:52 Jcas | skóre: 19 | blog: linux v rukou ...
Rozbalit Rozbalit vše Re: bash script (odpocitavani, vstup uzivatele, editace souboru)
To je blbost, to nepujde. Jestli-že už něco vypíše pomocí echo, tak už je to zobrazeno a těžko to změní.
25.10.2009 21:51 Sinuhet | skóre: 31
Rozbalit Rozbalit vše Re: bash script (odpocitavani, vstup uzivatele, editace souboru)
echo -n "Tohle smazu a prepisu necim jinym"
sleep 1
echo -e "\rTabula rasa!"
26.10.2009 06:38 Jcas | skóre: 19 | blog: linux v rukou ...
Rozbalit Rozbalit vše Re: bash script (odpocitavani, vstup uzivatele, editace souboru)
Odpovědět | | Sbalit | Link | Blokovat | Admin
Bezva děkuji Takže to znamená, že pokud neukončím řádek (-n), tak se do něj smím pomocí návratového vozíku vráti (-e) a ještě s ním něco udělat. správně?
y=5
echo -n "cislo je $y"
sleep 1


while [ $y -ge 0 ]

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

y=$(expr $y - 1)
done
26.10.2009 07:28 Vojtěch Horký | skóre: 39 | blog: Vojtův zápisník | Praha
Rozbalit Rozbalit vše Re: bash script (odpocitavani, vstup uzivatele, editace souboru)
tak se do něj smím pomocí návratového vozíku vráti (-e) a ještě s ním něco udělat. správně?
Ne tak docela. Návrat vozíku je ono \r na začátku řetězce, parametr -e pouze zajistí, že se budou tyto sekvence správně interpretovat (takhle lze také měnit barvy na terminálu atd.).
I am always ready to learn although I do not always like to be taught. (W. Churchill)
26.10.2009 07:34 Jcas | skóre: 19 | blog: linux v rukou ...
Rozbalit Rozbalit vše Re: bash script (odpocitavani, vstup uzivatele, editace souboru)
Odpovědět | | Sbalit | Link | Blokovat | Admin
ještě to má chybyčku. Ještě by to chtělo, aby na jednom řádku v klidu probíhalo odpočítavání a přitom (zároveň ve stejný okamžik) byl prostor na dalším řádku pro read y.
26.10.2009 08:18 Vojtěch Horký | skóre: 39 | blog: Vojtův zápisník | Praha
Rozbalit Rozbalit vše Re: bash script (odpocitavani, vstup uzivatele, editace souboru)
Ještě by to chtělo, aby na jednom řádku v klidu probíhalo odpočítavání a přitom (zároveň ve stejný okamžik) byl prostor na dalším řádku pro read y.
Neříkám, že to nejde, ale skoro se mi zdá, že jste si vybral špatný nástroj. Shellovské skripty se obvykle podobným „cukrátkům“ vyhýbají, protože je těžké zajistit přenositelnost na různých typech terminálů a je také problém s přesměrováním vstupu a výstupu (pokud chci skript dále automatizovat).
I am always ready to learn although I do not always like to be taught. (W. Churchill)
26.10.2009 09:30 Jcas | skóre: 19 | blog: linux v rukou ...
Rozbalit Rozbalit vše Re: bash script (odpocitavani, vstup uzivatele, editace souboru)
Takže je lepší se na nějaké odpočítavání vykašlat a nechat pouze čistý
read -t
26.10.2009 11:34 Vojtěch Horký | skóre: 39 | blog: Vojtův zápisník | Praha
Rozbalit Rozbalit vše Re: bash script (odpocitavani, vstup uzivatele, editace souboru)
IMHO ano. Řekl bych, že tohle prostě stačí:
echo -n "Pokracovat [ano/ne] (za 3s automaticky pokracujeme)? ";
read -t 3 ANSWER || { echo "ano"; ANSWER="ano"; }; 
echo "Odpoved je $ANSWER";
I am always ready to learn although I do not always like to be taught. (W. Churchill)
26.10.2009 18:40 Jcas | skóre: 19 | blog: linux v rukou ...
Rozbalit Rozbalit vše Re: bash script (odpocitavani, vstup uzivatele, editace souboru)
jj-pěkný děkuji Jak prosté, stačí, když hlava pracuje a napadne ji tam přidat větu "za 3 sek pokračujeme.

Založit nové vláknoNahoru

Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.