Linux E X P R E S

Facebook

Programovanie v shelli - 2. časť množina príkazov

bash_perex.png

Shell je jednoduchý programovací jazyk veľmi podobný programovaciemu jazyku Python. Takisto ako python si vieme jednotlivé príkazy vyskúšať priamo ako fungujú pomocou interaktívneho režimu. Skripty si vieme uložiť aj do spustiteľného súboru. V operačnom systéme Linux má takýto súbor najčastejšie príponu .sh avšak dôležité sú práva, pretože súbor vieme spustiť aj bez tejto prípony. Na editáciu používame jednoduché textové editory, v článku si ukážeme Kate.


Množina možných príkazov:

  • premenné: reťazce, čísla, polia, prostredie a parametre,
  • podmienkami,
  • cykly,
  • zoznamy,
  • funkcie,
  • príkazy zabudované do shellu,
  • zisk výsledkami programov,
  • here dokumenty.

Premenné – priraďovanie, výpis, vstup

Programovanie premenných v shelli je rovnaké ako v Pythone – dekláracia premenných nie je potrebná, premenné si vytvárame postupne priradením podľa potreby. Premenné priraďujeme rovnako ako v Pythone premenná=hodnota. Na výstup údajov slúži príkaz echo. Syntax s premennou na jej výpis je: echo $premenná alebo echo "$premenná". Pri syntaxi príkazu: echo '$premenná' alebo echo \$premenná nám vypíše text v apostrofoch alebo text za opačným lomítkom.

Obrázok 1: Ukážka rôznej syntaxe príkazu echo v konzole Obrázok 1: Ukážka rôznej syntaxe príkazu echo v konzole

Obrázok 2: Ukážka práce s premennými v textovom editore Kate a následné spustenie. Všimnime si farebných odlišností pri syntaxi. Chybová hláška – pri spúšťaní musíme zadať celú adresu súboru. Obrázok 2: Ukážka práce s premennými v textovom editore Kate a následné spustenie. Všimnime si farebných odlišností pri syntaxi. Chybová hláška – pri spúšťaní musíme zadať celú adresu súboru.

Pekne to máme ukázané v textovom editore Kate. Ak chceme príkazom pre výstup vypísať obsah premennej, tak musí byť rovnakou farbou ako je na ľavej strane priraďovacieho príkazu. Shell na rozdiel od Pythonu neberie apostrofy ako náhradu úvodzoviek. Takto sa definujú vlastné premenné v shelli v linuxe pomocou priradenia. Na vstup údajov slúži príkaz read.
Poďme sa teraz pomenovať príkazom echo, read.

Obrázok 3: Ukážka načítania premennej cez príkaz read a následný výpis Obrázok 3: Ukážka načítania premennej cez príkaz read a následný výpis

Príkaz echo

Ako sme už uviedli vyššie, tak príkaz echo slúži na výpis obsahu premenných. Syntax príkazu je takáto: echo [možnosti] [argumenty – premenné,…]. Medzi možnosti patrí:

  • -e – zoberie do úvahy riadiace sekvencie uvedené za opačným lomítkom,
  • -E – preddefinovaná možnosť, neberie do úvahy riadiace sekvencie uvedené za opačným lomítkom,
  • -n – za výpisom nedá nový riadok, terminál pokračuje v tom istom riadku.

Medzi riadiace sekvencie za opačným lomítkom patria:

  • \a – alert – pípnutie,
  • \b – backspace – o znak späť,
  • \c – na konci výstupu nedá nový riadok,
  • \f – nová stránka,
  • \n – nový riadok,
  • \r – návrat na začiatok riadka,
  • \t – horizontálny tabulátor,
  • \v – vertikálny tabulátor,
  • \\ – opačné lomítko,
  • \e alebo \E – nezobraziť znak za riadiacou sekvenciou,
  • \n nnn – osembitový reťazec, kde hodnota je oktálové číslo, kde nnn sú 1 až 3 číslice,
  • \0 nnn – osembitový reťazec, kde hodnota je oktálové číslo, kde nnn sú 0 až 3 číslice,
  • \x HH – osembitový reťazec, kde hodnota je hexadecimálne číslo, kde HH sú 1 až 2 číslice.

Obrázok 4: Ukážka riadiacich sekvencií a ich umiestnenie. Netreba zabúdať na správne poradie možností, inak možnosť nebude fungovať. Obrázok 4: Ukážka riadiacich sekvencií a ich umiestnenie. Netreba zabúdať na správne poradie možností, inak možnosť nebude fungovať.

Riadiace sekvencie sa dávajú do reťazca, ktorý sa má zobraziť, miesto textu sa môžu použiť aj premenné, avšak pre lepšiu názornosť sme použili priamo text.

Príkaz read

Príkazom read načítavame obsah premenných. Syntax príkazu je takáto: echo [možnosti] [argumenty – premenné,…]. Medzi možnosti patrí:

  • -n <číslo> premenná – prečíta počet znakov zadaných v čísle a dá ich do premennej, po dosiahnutí počtu ukončí príkaz,
  • -a premenná – prečíta vstupy oddelené medzerami a premenná je pole znakov alebo čísel zadaných užívateľom,
  • -d <oddeľovač – napr. ,> premenná – prečíta vstup po oddeľovač a dá ho do premennej, po dosiahnutí oddeľovača ukončí príkaz,
  • -i "hláška" premenná – nápoveda pre formuláre, v shelli nefunguje, avšak vo formulároch funguje.
  • -e premenná – spojené s programami, ktoré umožňujú interaktívne relácie,  v bežnom shelli nefunguje,
  • -p "hláška" premenná – do hlášky je možné dať reťazec, ktorý popíše, čo má užívateľ zadať,
  • -N <číslo> premenná – prečíta počet znakov zadaných v čísle a dá ich do premennej, po dosiahnutí počtu ukončí príkaz,
  • -r premenná – načíta údaje do premennej a ignoruje riadiace sekvencie, berie ich ako bežný reťazec,
  • -s premenná – typický príklad je zadávanie hesiel v Linuxe, kde sa heslo nezobrazuje, toto isté robí aj táto možnosť,
  • -u deskriptor – hodnoty do premennej načíta zo súboru pomocou deskriptora,
  • -t <čas v s> premenná – po uplynutí časového limitu príkaz pokračuje automaticky ako po zadaní vstupu.

Obrázok 5: Ukážka možností príkazu read a viacnásobné načítanie ako aj viacnásobný výpis. Obrázok 5: Ukážka možností príkazu read a viacnásobné načítanie ako aj viacnásobný výpis.

Záver

V ďalšej časti sa budeme venovať číslam, reťazcom a poliam.


Diskuze (0) Nahoru