Shell käyttää tiedostonimien tulkintaan ja joihinkin testikomentoihin (case) omaa, yksinkertaista merkkijonolausekesyntaksiaan. Erityisesti sitä käytetään tiedostonimien generoimiseen (sekä ulkoisten komentojen nimissä että argumenteissa). Myös jotkin ulkoiset komennot käyttävät samaa syntaksia (erityisesti find).
POSIX määrittelee seuraavat jokerimerkit:
Muut merkit vastaavat itseään (huomaa kuitenkin että kohdassa 4.3 luetellut shellin erikoismerkit on tarvittaessa suojattava).
Huomaa että jokerilausekkeen on vastattava verrattavaa merkkijonoa kokonaisuudessaan (a* vastaa vain a:lla alkavia), toisin kuin esim. grepin kanssa.
Hakasulkulauseke voi sisältää
Näiden merkitys riippuu kielivalinnasta, semantiikka on aina sama; esim. [:lower:] vastaa myös kirjaimia ``äöå'', jos kieli on valittu sopivasti.
Tiedostonimiä laajennettaessa on voimassa seuraavat rajoitukset:
Ksh tuntee edellisten lisäksi seuraavat listaoperaattorit, kun lista on joukko pystyviivalla | erotettuja merkkijonoja (joissa voi itsessään olla jokereita):
Esim. ?(a|bb)+([xyz]|kala) vastaa merkkijonoja x, y, z, kala, ax, ay, az, akala, bbx, bby, bbz ja bbkala.
Tilde ~ on tavallaan jokerimerkki, mutta se käsitellään eri tavalla ja eri vaiheessa kuin edellämainitut. Se korvataan vain rivin alussa tai tyhjän perässä ja muuttujasijoituksessa yhtäsuuruusmerkin sekä kaksoispisteen jäljessä, sitä seuraavan käyttäjätunnuksen tai jos sitä seuraa välittömästi / tai tyhjää, $HOME:n arvolla.
Sen aikaisesta käsittelystä seuraa erityisesti, että sitä voi käyttää
muuttujasijoituksessa (vaikkapa PATHissa). Sen sijaan se ei
toimi sijoituksennäköisessä argumentissa, esim.
make -k kala DIR=~/xyzzy
ei toimi.
Seuraava: 4.7-4.8 Komentorivin tulkinnasta
Edellinen: 4.4-4.5 Muuttujat, syöttö ja tulostus