Fejezet 10. A shell programozási nyelv elemei

Tartalomjegyzék
Változók
Elágazások
Ciklusok
Függvények

Változók

Minden programozási nyelvben találunk változókat, melyek (nevükhöz híven) változó adatok átmeneti tárolását teszik lehetővé. Ezeket az adatokat a programunk megváltoztathatja, illetve műveleteket végezhet vele.

A shellben változókat nagyon egyszerűen hozhatunk létre: értéket adunk nekik.

$ valtozo=Piroska
$ 
Ekkor a valtozo nevű változó értéke a Piroska szó lesz. Egy változó értéket legegyszerűbben az echo parancs segítségével irathatjuk ki.
$ echo $valtozo
Piroska
$ 
Mint láthattuk, a változó neve elé egy dollárjel került. Ez jelenti azt, hogy egy változó tartalmára hivatkozunk.
$ valtozo=7+5
$ echo $valtozo
7+5
$ 
Mint láttuk, a shell változók értékadásánál nem hajtódnak végre az aritmetikai műveletek.
$ valtozo='Proba baba $valtozo'
$ echo $valtozo
Proba baba $valtozo
$ valtozo="Masodik $valtozo"
$ echo $valtozo
Masodik Proba baba $valtozo
$ 
Az előző példa a shell több tulajdonságát is megmutatja. Ha egy változónak több szóból álló értéket akarunk adni, akkor idézőjelek közé kell tenni. Azt is megfigyelhetjük, hogy a dupla idézőjel behelyettesíti a változók értékét, míg a szimpla nem.

Környezeti változók

Amikor egy shell programunk elindul, előfordul, hogy információkat kell kapnia a környezetéről. Ezeket az információkat a környezeti változók tartalmazzák. Ezek a változók általában csupa nagybetűből állnak, hogy megkülönböztethetők legyenek a felhasználó által definiált változóktól. A következő táblázatban felsorolunk néhányat:

Táblázat 10-1. Környezeti változók

Környezeti változó Leirás
$HOME A felhasználó Home könyvtára
$PATH Azoknak a könyvtáraknak kettősponttal elválasztott listája, amelyekben a rendszer a kiadott parancsokat keresi.
$PS1 A prompt karakterét tartalmazza, általában $. A root felhasználó promptja #.
$PS2 A másodlagos prompt. (parancs kiadása közben, újsor karakter után jelenik meg) Általában >.
$IFS Inter Field Separator, azaz mezőelválasztó. Karakterek listája, amelyek elválaszthatják a szavakat a shell bemenetén. Általában szóköz, tabulátor és újsor karakter.
$0 A shell script neve.
$# A shell scriptnek átadott paraméterek száma
$$ A script processzazonosítója. Ez a szám azonosítja a rendszeren futó programokat. Általában átmeneti fájlok létrehozására használják. (pl. /tmp/proba_$$ )

Paraméter változók

A shell scriptünknek paramétereket is adhatunk. Ezeket az adatokat is változókon keresztül érhetjük el.

Táblázat 10-2. Paraméter változók

Paraméter változó Leirás
$1, $2, ... A shellnek átadott paraméterek, $# számú változó van definiálva.
$@ Az összes paraméter egyetlen változóban.
$* Az összes paraméter egyetlen változóban, de az egyes szavakat az IFS változó első karakterével választja el.