Portál AbcLinuxu, 12. května 2025 11:09
# spusti dotaz 0 == pokracuj, 1 == zpet
function yes_no {
case $? in
0);;
1)menu;;
esac
}
# spusti pozadovanou akci
function akce {
echo "jdu makat"
}
# spusti funkci akce
nebo ukoci script
function menu {
case $? in
0)akce;;
1)exit;;
esac
}
Posielas nekompletny kod a chces odpoved.Nechtěl jsem zde psát tunu kodu, myslel jsem ze na pochopeni to staci..
Kde sa vola yes_no?Omluva, doplneno
# spusti pozadovanou akci function akce { yes_no echo "jdu makat" }
Co si predstavujes pod $? ?v $? je uložena vždy poslední hodnota, v tomto případě to je vždy bud 0 or 1
$?
používat jako globální pro předávání hodnoty mezi funkcemi, protože se mění po každém provedení příkazu, tedy i při volání funkce, ve které by ji někdo chtěl vyhodnocovat.
Nikdy nepouzivajte specialne premenne, ak ich naozaj nepotrebujete. A ak ich potrebujete, tak si ich ulozte do "klasickych" premennych a potom s nimi pracujte. Toto plati aj pre premenne $$, $!, $? a z bashovin $RANDOM
Odporucam pouzit namiesto $? parametre funkcii - to sa da aspon pekne odtrasovat (stacia prikazy echo v sledovacich bodoch alebo set +x na zaciatku). $? znamena return hodnotu posledneho spusteneho spusteneho programu, ale tu meni aj taky obycajny program echo alebo [.
Tiskni
Sdílej:
ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.