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.
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_$$ ) |
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. |