Portál AbcLinuxu, 13. července 2025 11:41


Dotaz: Bash case s dvojitym vstupem

24.4.2015 15:00 memad
Bash case s dvojitym vstupem
Přečteno: 189×
Odpovědět | Admin
Zdravím,

zkouším si scriptování v bashi a narazil jsem na věc, kterou neumím.

mým cílem je udělat přes Case seznam, kdy uživatel při vstupu zadá jmeno, poté další parametr, řekněme věk, poté přes echo se na výstupu ukáže odpověd.

mým problémem je, že nevím jak dát dohromady case s dvojitím vstupem přiklad #!/bin/bash echo "Jméno" echo -n "Zadejte Jméno: " read jmeno echo case $jmeno in toto je v pohodě, ale nevím zde za to přidat jěště

echo -n "zadejte věk: "

read vek ?

zde je můj celý skript jak to myslím, oboje na sebe navazuje #!/bin/bash echo "Jméno" echo -n "Zadejte Jméno: " read jmeno echo case $jmeno in Franta Hruška|starej) echo "Ale notak, zadej číslo" ;; Franta Hruška|18) echo "Pěkně lžeš" ;; Franta Hruška|35) echo "Toto je správně staříku" ;; esac jde mi o to aby zadal nejdřív jméno,poté věk a podle toho se zobrazí přes echo nějaká prkotina.

prosím o radu, nebo jestli aspoň jsem na dobré cestě, jsem samouk přivítám každou pomoc.

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

Odpovědi

wamba avatar 24.4.2015 16:52 wamba | skóre: 38 | blog: wamba
Rozbalit Rozbalit vše Re: Bash case s dvojitym vstupem
Odpovědět | | Sbalit | Link | Blokovat | Admin
můžeš použít case v case (if)

#!/bin/bash
echo "Jméno";
echo -n "Zadejte Jméno: ";
read jmeno;
echo -n 'věk: ';
read vek
case $jmeno in
    "Franta Hruška")
        case $vek in
            "moc starej")
                echo "Ale notak, zadej číslo"
                ;;
            "18")
                echo "Pěkně lžeš"
                ;;
            "35")
                echo "Toto je správně staříku"
                ;;
        esac
        ;;
esac
This would have been so hard to fix when you don't know that there is in fact an easy fix.
24.4.2015 19:48 nobody
Rozbalit Rozbalit vše Re: Bash case s dvojitym vstupem
Odpovědět | | Sbalit | Link | Blokovat | Admin
Nemusis pouzit nejdriv "echo -n vyzva" a pak "read promena", ale rovnou:
read -p "Zadejte Jméno: " jmeno
read -p "Zadejte Věk: " vek
Vicenasobne polozky muzes dat, pokud obsahuji mezeru, je potreba do uvozovek,
porad se ale hledaji jen v ramci te jedne promene, tedy napr.:
echo case $jmeno in 
	"Franta Hruška"|Franta|Hruška)
		echo "Ahoj Franto (a/nebo) Hruško..." 
	;;
	*)
		echo "Zadano nic, nebo se nezname..."
	;;
esac
zde v prispevku kdyz vkladas formatovany text, oznac ho a vyber znacku (pre), text zustane predpormatovanej a citelnej ;)

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.