Fotografický magazín "iZIN IDIF" každý týden ve Vašem e-mailu.
Co nového ve světě fotografie!
Zadejte Vaši e-mailovou adresu:
Kamarád fotí rád?
Přihlas ho k odběru fotomagazínu!
Zadejte e-mailovou adresu kamaráda:
Software
Příkazy exit a select
5. září 2002, 00.00 | Dnes ukončíme naše povídání o skriptech; ukážeme si velmi důležitý příkaz exit, a nakonec si jako malý bonus přidáme příkaz select, který umožňuje velmi pohodlně sestavovat interaktivní skripty.
Dnes ukončíme naše povídání o skriptech; ukážeme si velmi důležitý příkaz exit, a nakonec si jako malý bonus přidáme příkaz select, který umožňuje velmi pohodlně sestavovat interaktivní skripty.
Příkaz exit
Za normálních okolností skript skončí ve chvíli, kdy shell interpretuje všechny jeho příkazy; návratová hodnota je táž, kterou nastavil poslední provedený příkaz. Příkaz exit nám skvěle poslouží v případech, kdy chceme skript ukončit předčasně a/nebo kdy chceme určit jeho návratovou hodnotu explicitně. Formát příkazu je triviální:
exit
exit N
kde nepovinné N je právě požadovaná návratová hodnota. Pokud N nezadáme, skript opět vrátí návratovou hodnotu naposledy provedeného příkazu.
Příkaz select
Pomocí příkazu select můžeme velmi snadno vytvářet jednoduché interaktivní skripty. Jeho formát je
select proměnná in varianty do seznam done
Proměnná je prostě jméno proměnné; varianty je seznam "příkazů", z nichž si uživatel bude moci vybrat. Tento seznam je ukončen buď středníkem, nebo prázdným řádkem. Konečně seznam je tradiční skupina příkazů shellu.
Příkaz select nejprve vygeneruje "menu", obsahující všechny volby ze seznamu variant. Jakmile uživatel některou z nich zvolí, uloží její název do zadané proměnné (a uživatelův vstup umístí do standardní proměnné REPLY); pak provede seznam. To celé se opakuje dokud nevyskočíme ven příkazem break, nebo dokud neukončíme skript:
220 /tmp> select xyz in Ahoj "Dobry den" Konec ; do
echo Vybrano \"$xyz\" ($REPLY)
case $xyz in
(Ahoj) echo Cagobago;;
("Dobry den") echo Take velice zdravim;;
(Konec) break;;
esac
done
1) Ahoj 2) Dobry den 3) Konec
?# 1
Vybrano "Ahoj" (1)
Cagobago
1) Ahoj 2) Dobry den 3) Konec
?# 2
Vybrano "Dobry den" (2)
Take velice zdravim
1) Ahoj 2) Dobry den 3) Konec
?# 3
Vybrano "Konec" (3)
221 /tmp>
To je zatím vše!
Dokončením kapitoly o skriptech a jejich speciálních příkazech jsme ukočili první díl, obsahující základy shellu a práce s ním. Nyní již máte dostatečné znalosti k tomu, abyste mohli se shellem pracovat efektivně; můžeme se proto začít věnovat konkrétním, problémově zaměřeným oblastem.
"Druhý blok" seriálu, který nás nyní čeká, se zaměří na získávání informací o počítači: podíváme se, jaké procesy běží a vysvětlíme si co to přesně znamená, ponoříme se do podrobních informací o virutální paměti a o síti, ukážeme si, kdo má otevřené nějaké kanály... a tak dále, a tak podobně.
Obsah seriálu (více o seriálu):
- Obcování s ďáblem
- Obcování s ďáblem 2 - základy
- Obcování s ďáblem 3 - Práce se soubory
- Obcování s ďáblem 4 - Další práce se soubory
- Obcování s ďáblem 5 - Stále soubory, hlavně linky
- Obcování s ďáblem 6: Pár zbývajících drobností
- Obcování s ďáblem 7: Samá voda, přihořívá, hoří!
- Obcování s ďáblem 8: Jak se do shellu volá, tak se program ozývá
- Obcování s ďáblem 9: Nové finty na programy
- Obcování s ďáblem 10: Do fronty, pánové, do fronty!
- Obcování s ďáblem 11: Standardní vstup a výstup
- Obcování s ďáblem 13: Další triky
- Obcování s ďáblem 14: Vyšší škola hledání souborů
- Obcování s ďáblem 15: Příkaz find stokrát jinak
- Obcování s ďáblem 16: Co se ještě dá uvařit z příkazu find
- Obcování s ďáblem 17: Regulární výrazy
- Obcování s ďáblem 18: Speciální regulární výrazy
- Obcování s ďáblem 19: Skládání regulárních výrazů
- Obcování s ďáblem 20: Regulární výrazy se zpětnými odkazy
- Obcování s ďáblem 21:K čemu je dobrý grep...
- Zázraky ihned, nemožné na počkání: sed
- Obcování s ďáblem - další finty s příkazem sed
- Rozsáhlejší příklad se sedem
- Obcování s ďáblem: Další kouzla, aneb awk
- Awk a proměnné
- Obcování s ďáblem 27: Awk a výrazy
- Obcování s ďáblem: Awk a funkce
- Awk a příkazy
- Co je to vlastně "uživatel"?
- Vlastnictví objektů
- Přístupová práva
- Vlastník, skupina, ostatní...
- Jak je to se skupinami?
- Skupiny a uživatelé
- Scripty
- Komentáře, a volba shellu
- Pro skript může být shell cokoli!
- Shellové skripty a argumenty
- Skripty a proměnné: aritmetika
- Proměnné shellu, "dědění" hodnot
- Práce s proměnnými
- Práce se jmény souborů
- Pole hodnot
- Další triky kolem polí...
- Standardní proměnné shellu
- Základní příkazy pro skripty
- Příkaz if
- Speciální podmínkové příkazy
- Podmínky pro práci se soubory
- Jednoduchý cyklus
- Příkaz for a pomocné příkazy break a continue
- Příkaz case
- Příkazy exit a select
- Rejstřík a přehled
- Procesy
- Informace o procesech
- Další klíčová slova pro příkaz ps
- Příkaz ps: několik praktických přepínačů
- A k čemu že je "ps" dobré?
- Copak procesor, s pamětí je to horší
- Virtuální paměť
- A ještě jednou virtuální paměť
- Zpět k příkazu ps
- Skutečný žrout paměti
- Ještě jednou top
- Doplněk k topu: vm_stat
- Co to tedy všechno znamená?
- Nevychází nám dal a má dáti?
- Kam se stránky ukládají?
- Změna odkládacího disku
- Změna odkládacího disku / fstab
- Poslední poznámka k fstab
- A jak to je se soubory?
- Co vlastně příkaz lsof vypisuje?
- Příkaz lsof a obsah sloupce NAME
- SIPS - Terminál není jen pro nadšence UNIXu
- Tak nám zabili NetInfo, paní Müllerová
Diskuse k článku