Fejezet 10. A shell programozási nyelv elemei 

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.