3. Metamärkide kasutamine shellis

Tõenäoliselt oled juba kokku puutunud metamärkidega, isegi kui sa ei tea, mida see täpselt tähendab. Kui näiteks soovid Windows® kasutades faili otsida või avada, võid kasutada suvalise faili leidmiseks sümbolit *. Näiteks *.txt leiab kõik failid, mille nime lõpus seisab .txt. Me kasutasime seda üsna palju ka viimases osas. Kuid metamärgid võimaldavad palju enam kui pelgalt * sellist kasutamist.

Kui Te kirjutate käsu ls *.txt ja vajutate klahvi Enter, ei soorita selliste failide otsimist, mis vastaksid mustrile *.txt, mitte käsk ls, vaid shell ise. Siinkohal tasub veidi seletada, kuidas shell tõlgendab käsurida. Kui Te kirjutate:

$ ls *.txt
readme.txt  recipes.txt

jagatakse käsurida kõigepealt sõnadeks (ls ja *.txt antud näites). Kui shell näeb sõnas sümbolit *, tõlgendab see kogu sõna metamärki kasutava mustrina ning asendab selle kõigi sobivate failide nimedega. Seepärast omandab käsk enne seda, kui shell selle teostab, kuju ls readme.txt recipe.txt, mis annabki meile oodatud tulemuse. Ka mõned muud sümbolid panevad shelli selliselt käituma:

Toome siin ära mõningad mustrid ja nende tähendused:



[14] Ettevaatust! See võib küll nii olla paljude keelte korral, aga mitte tingimata Teie keele puhul (lokaat). See sõltub niinimetatud põimejärjekorrast. Mõnes keeles vastab määratlusele [a-z] a, A, b, B, (...), z. Ja me ei hakka mainimagi, et mõnes keeles on näiteks täpitähed...