Fájlnév behelyettesítés

Az alábbi metakarakterek fájlnév behelyettesítéskor játszanak szerepet. Minden olyan argumentumot, amelyben az alábbi metakarakterek szerepelnek, a C shell behelyettesítendő fájlnévnek tekint, s az alábbi szabályok alapján próbálja a megadott (vagy annak hiányában az aktuális) katalógusban lévő fájlnevek listájára illeszteni. Ha talált egy vagy több olyan fájlnevet, ami illeszkedik a keresett mintára, akkor az argumentum helyére ezeket a fájlneveket fogja behelyettesíteni. Ha az illesztés sikertelen volt, a nonomatch shell-változó beállításától függően vagy hibajelzést ad a shell, vagy változatlanul hagyja az eredeti, fájlnév behelyettesítési metakaraktereket tartalmazó argumentumot:

hp 67: ls x*; echo $status

No match.

1

hp 68: set nonomatch; ls x*; echo $status

x* not found

2

hp 69:

A fenti példában először beállítatlan nonomatch változóval próbáltunk kilistázni nemlétező fájlokat, a shell a 'No match.' hibaüzenetet adta, s a parancs visszatérési értéke 1 volt, ami a beépített parancs rendellenes lefutását jelzi; ha a nonomatch változót bekapcsoltuk, nem a shell adott hibaüzenetet, hanem az ls parancs, jelezvén, hogy nem találta a szó szerint értelmezett argumentumnak megfelelő x* fájlt. A visszatérési érték ez esetben 2 volt, amit az ls parancs állított be a sikertelen keresés hatására.

Az alábbiak a csh által értelmezett fájlnév behelyettesítő metakarakterek:

?

Bármely karakterre illeszkedő "dzsóker karakter".

*

Akármennyi tetszőleges karakterre illeszkedik (nulla darab karakterre is!).

[...]

Karakterosztály definíció: egyetlen olyan karakterre illeszkedik, amelyik a szögletes zárójelek között szereplő karakterek valamelyikével azonos. A karakterek megadása történhet "tól-ig" formában is, pl [a-z] bármelyik kisbetű karakterre illeszkedik.

Az alábbi metakarakterek nem szerepelnek a Bourne shell-nél:

{..,..}

A karakterosztály fogalmának kibővítése. A kapcsos zárójelek között tetszőleges hosszúságú karaktersorozatok szerepelhetnek, ezeket vesszővel elválasztva kell felsorolni. Az ily módon megadott minta értelemszerűen nem egy karakterre, hanem tetszőleges számú karakterre illeszkedhet. Például az {a,alfa,beta,gamma}bc minta illeszkedni fog az abc, alfabc, betabc és gammabc fájlnevekre egyaránt. A kapcsos zárójelek egymásba is ágyazhatóak, s használhatóak benne a '?' és '*' dzsókerkarakterek is.

~

A megnevezett felhasználó alapkatalógusának (home directory) neve helyettesítődik be. Ha például rendszerünkben a felhasználók alapkatalógusai a /users katalógus alatt találhatóak, akkor a ~peter megadással a /users/peter név fog behelyettesítődni. Ha a tilde karakter után rögtön egy slash karakter szerepel, akkor a saját alapkatalógusunk fog behelyettesítődni, így demo néven dolgozva a ~/bin/proba a /users/demo/bin/proba fájlnévre fog illeszkedni.

 

Tartalomjegyzék