Metakarakterek semlegesítése

Gyakran van szükség arra, hogy a metakaraktereket literálisan, azaz szószerint lehessen érteni, a shell ne próbálja őket interpretálni. Ennek legegyszerűbb módja, ha egyszeres idézőjelek (' ... ') közé zárva írjuk az adott metakaraktereket, ez esetben több karakter is szerepelhet az idézőjelek között. A másik megoldás, hogy a backslash karakterrel egyenként tiltjuk le a metakarakterek interpretációját. Végül a harmadik módszer, hogy idézőjelek között
(" ... ") rejtjük el a karaktereket. Utóbbi esetben viszont bizonyos interpretációkat mégiscsak végez a shell (ezekről később még lesz szó), ezért inkább az első kettő az ajánlható.

Az alábbi példában háromszor három csillagot íratunk ki az echo paranccsal, s mindhárom csoportot más-más semlegesítő módszerrel védtük le:

 

$ echo '***' \*\*\* "***"

*** *** ***

$

Ha az idézőjelek valamelyikét szeretnénk literálisan megkapni, akkor a másik fajta idézőjel közé zárva írjuk:

 

$ echo "'"

'

$

Ha újsor karaktert szeretnénk a szövegben megadni, akkor azt valamelyik idézőjelpár közé kell zárni:

 

$ echo 'Ladies &

> gentlemen'

Ladies &

gentlemen

$

A második sor beírásakor látható > karakter az úgynevezett másodlagos prompt (secondary prompt): ez íródik ki olyankor, amikor a parancs befejezéséhez a shell újabb szövegbevitelt vár a felhasználótól. E módszer arra alkalmas, hogy a bevitel során megőrizzük az eredeti többsoros jelleget.

Ha az újsor karaktert nem idézőjelpárok közé zárjuk, hanem a backslash karakterrel tesszük literálissá, akkor az újsor karaktert magát is eldobja a shell. Ily módon lehetőségünk van hosszú sorok bevitelére a rendszerbe:

 

$ echo abc\

> def\

> ghi

abcdefghi

$

 

Tartalomjegyzék