Bir sözcük bir tırnaksız yaklaşık (~) karakteri ile başlıyorsa ve
tırnaksız ilk / karakterine kadar olan tüm karakterler (veya
tırnaksız bir / yoksa tüm karakterler) bir yaklaşık-öneki
kabul edilir. Yaklaşık-öneki içindeki karakterlerin hiçbiri tırnaklı
değilse, yaklaşık-öneki içindeki karakterlerin olası bir kullanıcı
ismi oluşturduğu varsayılır. Eğer bu kullanıcı ismi boşsa yaklaşık
işareti HOME kabuk değişkeninin değeri ile değiştirilir.
Eğer HOME değişkeni belirlenmemişse, yerine kabuğu
çalıştıran kullanıcının ev dizini kullanılır. Aksi takdirde yaklaşık-öneki,
belirtilen kullanıcının ev dizini ile değiştirilir.
Yaklaşık-öneki ~+ ise, yaklaşık-öneki
PWD kabuk değişkeninin değeri ile değiştirilir.
Yaklaşık-öneki ~- ise,
varsa OLDPWD kabuk değişkeninin değeri kullanılır.
Yaklaşık-önekinden sonra istemlik olarak bir
+ veya
- işareti konmuş bir sayı geliyorsa, yaklaşık-öneki,
dirs
yerleşiğine bu işaret ve sayı verilerek çağrıldığı durumda dönen dizin
yığınındaki ilgili eleman ile değiştirilir. Eğer yaklaşık-öneki ile birlikte
verilen sayı bir
+ veya
- işareti
içermiyorsa
+ işareti verilmiş kabul edilir.
Kullanıcı ismi geçersizse ya da yaklaşık yorumlaması başarısız olursa
sözcük değişmeden kalır.
Her değişken ataması bir : veya ilk = işaretinden önce yaklaşık işaretinin gelebileceği varsayımıyla kontrol edilir. Bu gibi durumlarda, yaklaşık yorumlaması ayrıca uygulanır. Sonuç olarak, PATH, MAILPATH ve
CDPATH değişkenlerine atamalarda yaklaşık işaretli dosya isimleri kullanılabilir ve kabuk değer olarak yorumlanan değeri atar.
Aşağıda tırnaksız yaklaşık-öneklerinin nasıl yorumlandığı gösterilmiştir.
- ~
$HOME değişkeninin değeri
- ~/foo
$HOME/foo
- ~fred/foo
fred isimli kullanıcının ev dizininin foo alt dizini
- ~+/foo
$PWD/foo
- ~-/foo
${OLDPWD-'~-'}/foo
- ~N
dirs +N komutundan elde edilen dizge
- ~+N
dirs +N komutundan elde edilen dizge
- ~-N
dirs -N komutundan elde edilen dizge