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.
() |
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). |
== |
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). |
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ő. |
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.