Kifejezések és operátorok

Az alábbi pontokban a numerikus- és string-kifejezések megadásakor használható operátorokat ismertetjük. Vigyázzunk, hogy az egyes változókat, műveleti jeleket és zárójeleket a shell által elkülöníthető módon, azaz szóközökkel elválasztva írjuk. Néhány műveleti jelet ugyan ennek hiányában is el tud különíteni, de az esetek nagy többségében nem, ezért legjobb, ha mindent külön-külön argumentumként adunk meg.

Aritmetikai operátorok

()

Zárójelezés, a kiértékelési sorrend megváltoztatására.

+, _, *, /

Összeadás, kivonás, szorzás és osztás.

%

Maradékos osztás.

^

Bitenkénti kizáró VAGY (excl.OR).

~

Unáris egyes komplemens.

>>, <<

Jobbra, illetve balra léptetés.

&, |

Bitenkénti ÉS (AND) és VAGY (OR).

Logikai (relációs) operátorok

==

Egyenlő. Mind stringekre, mind numerikus értékekre használható.

!=

Nem egyenlő. Mind stringekre, mind numerikus értékekre használható.

!

Negálás.

Az alább következő logikai operátorok esetén mindig zárójelezni kell az operandusokat és az operátort.

>, >=, <, <=

Nagyobb, nagyobb-egyenlő, kisebb, kisebb_egyenlő. Csak számokra.

&&, ||

Logikai ÉS (AND) és VAGY (OR).

Értékadási operátorok

Az alábbi operátorokkal lehet változóknak értéket adni.

=

Értékadás.

+=, -=, *=, /=, %=, ^=

Ezen operátorok egyfajta tömörített megadást tesznek lehetővé, ha az értékadás bal oldala és az első jobboldali operandus azonos; például az

 

a += b megadás megfelel az

 

a = a + b műveletnek. A többi értékadási operátor hasonlóképpen értelmezendő.

 

Postfix operátorok

A C nyelvben szereplő mechanizmushoz hasonlóan, itt is léteznek postfix operátorok, a ++ és a --, melyek gyakorlatilag a var += 1 illetve a var -= 1 konstrukciónak felelnek meg, azaz a megnevezett var változó értékét eggyel növelik vagy csökkentik. Így az alábbi három szerkezet egyenértékű (figyeljük meg, hogy a postfix operátornál nem szükséges a $ jel kitétele a változóra hivatkozáshoz):

@ i++

@ i = $i + 1

@ i += 1

Fájl- és parancs-teszt operátorok

A fájlokkal kapcsolatos tesztekre külön operátorcsoportot definiál a C shell. A feltételek teljesülése esetén igaz (1), egyébként hamis (0) logikai értéket adnak vissza. Nem létező, vagy valamilyen okból hozzáférhetetlen fájlok tesztelése esetén mindegyik alábbi operátor hamis értéket ad vissza.

-r file

Igaz, ha a felhasználónak olvasási joga van a fájlra.

-w file

Igaz, ha a felhasználónak írási joga van a fájlra.

x file

Igaz, ha a felhasználónak végrehajtási (keresési) joga van a fájlra.

E file

Igaz, ha a fájl létezik.

-o file

Igaz, ha a felhasználó a fájl tulajdonosa.

-z file

Igaz, ha a fájl üres (nulla hosszúságú).

-f file

Igaz, ha a fájl közönséges állomány (nem katalógus, perifériameghajtó, stb.).

-d file

Igaz, ha a fájl katalógus.

Az alábbi operátorral parancs(ok) visszatérési értékét lehet lekérdezni.

{ command } Ha a kapcsos zárójelek közti parancs, illetve parancssorozat sikeresen futott le, igaz (1) értéket ad vissza, egyébként hamisat (0). Nagyon fontos emlékeznünk rá, hogy ez a kiértékelési mód ellentétes magával a parancs által adott visszatérési értékkel, hiszen a UNIX-os konvenció szerint a sikeresen lefutott programok 0 értékkel lépnek ki, bármi más visszatérési érték valami problémát jelez. Ha tehát valami miatt a parancs tényleges visszatérési értékére vagyunk kíváncsiak (exit status), azt a status shell-változóból tudhatjuk meg.

 

Tartalomjegyzék