Dosyaismi Yorumlaması
Önceki Kabuk Yorumları Sonraki
Dosyaismi Yorumlaması
Sözcük ayrımlaması yapıldıktan sonra -f seçeneği verilmedikçe (set Yerleşiği bölümüne bakınız.), Bash her sözcükte *, ? ve [ karakterlerini arar. Bunlardan biri varsa, sözcük bir kalıp olarak ele alınır ve sözcük, kalıp ile eşleşen dosya isimlerinin alfabetik sıralı bir listesi ile değiştirilir. Bir eşleşme bulunamamışsa ve nullglob kabuk seçeneği iptal edilmişse, sözcük değişmeden kalır. nullglob seçeneği etkin ise ve bir eşleşme bulunamamışsa sözcük silinir. failglob kabuk seçeneği etkin ise ve bir eşleşme bulunamamışsa bir hata iletisi basılır ve komut çalıştırılmaz. nocaseglob kabuk seçeneği etkin ise eşleşme alfabetik karakterlerin harf büyüklüklerine bakılmaksızın uygulanır.
Bir kalıp dosya ismi üretimi için kullanılmışsa ve dotglob kabuk seçeneği etkin değilse, bir dosya isminin başındaki . karakteri veya hemen ardından gelen bir / doğrudan eşleştirilmelidir. Bir dosya ismi eşleşmesinde / karakteri daima doğrudan eşleşmiş olmalıdır. Diğer durumlarda . karakterine bir özellik atfedilmez.
nocaseglob, nullglob, failglob ve dotglob seçeneklerinin açıklamaları için shopt yerleşik komutunun açıklamalarına bakınız.
GLOBIGNORE kabuk değişkeni bir kalıpla eşleşen dosya isimleri kümesini sınırlamakta kullanılabilir. GLOBIGNORE ile bir kalıp atanmışsa, dosya isimleri kümesi içindeki dosya isimlerinden biri aynı zamanda bu kalıpla da eşleşiyorsa o dosya ismi listeden çıkarılır. GLOBIGNORE atandığında ve null olmadığında . ve .. dosya isimleri daima yoksayılır. Bununla birlikte GLOBIGNORE değişkenine null olmayan bir değerin atanması, dotglob kabuk seçeneğini etkinleştirilmesi gibi bir etkiye de sahiptir, bu bakımdan . ile başlayan tüm dosya isimleri eşlenecektir. . ile başlayan dosya isimlerinim yoksayılmasını sağlayan eski davranışa dönmek için GLOBIGNORE değişkenine atanan kalıplardan birini .* yapın. GLOBIGNORE değişkeni kaldırıldığında, dotglob seçeneği de etkin olmaktan çıkarılır.
Kalıp Eşleme
Aşağıda anlamları açıklanan özel kalıp karakterleri dışındaki tüm kalıp karakterleri kendisi ile eşleşir. Bir kalıp içinde boş karakter (`\0') bulunmamalıdır. Bir karakterin öncesine bir tersbölü gelmişse eşleşme sırasında önceleyen yoksayılır. Özel kalıp karakterlerinin normal karakterler olarak davranması istenirse tırnak içine alınmalıdırlar.
Özel kalıp karakterlerinin anlamları:
*
Boş dizge dahil herhangi bir dizge eşleşir.
?
Herhangi bir tek karakter eşleşir.
[...]
Parantez içindeki karakterlerden herhangi biri eşleşir. Aralarında bir tire işareti ile belirtilen bir karakter çiftinin oluşturduğu aralık ifadesindeki aralığa düşen karakterlerin herbiri eşleşir. Bu aralık, yerele özgü karakter kodlamasına uyan bir aralıktaki karakterlerden oluşur. İlk [ parantezinden hemen sonra bir ! veya ^ karakteri geliyorsa bu karakterden sonraki karakterlerin dışında kalan karakterler eşleşir. - karakteri sadece enbaşta ya da en sonda ise kendisi ile eşleşir. ] karakteri ise ilk karakter olursa kendisi ile eşleşebilir. Aralık ifadesindeki karakterlerin sırası LC_COLLATE kabuk değişkenindeki yerele göre oluşturulur.
Örneğin, öntanımlı C yerelinde, [a-dv-z] ifadesi [abcdvwxyz] ifadesine eşgeğerdir. Birçok yerel, karakterleri sözlük sıralamasında sıralar ve bu yerellerde [abcdvwxyz] ifadesi yerine örneğin [aBbCcDdvVwWxXyYz] ifadesi eşdeğer olabilir. Türkçe için bu ifade [abcçdvyz] ile eşdeğerdir.
[ ile ] arasında karakter sınıfları [:sınıf:] sözdizimi ile belirtilir. Buradaki sınıf POSIX standardında tanımlanan aşağıdaki sınıflardan biri olabilir:
  alnum   alpha   ascii   blank   cntrl   digit   graph   lower
  print   punct   space   upper   word    xdigit
Eşleşme karakter sınıfındaki herhangi bir karakter için oluşur. word karakter sınıfı harflerle, rakamlarla ve _ karakteri ile eşleşir.
[ ile ] arasında bir eşdeğer sınıf [=c=] sözdizimi ile belirtilebilir. Buradaki eşleşme yerele göre c karakteri ile aynı karşılaştırma ağırlığındaki karakterlere uygulanır.
[ ile ] arasında [.sembol.] sözdizimi ile sembol karşılaştırma sembolü eşleştirilebilir.
extglob kabuk seçeneği shopt yerleşiğini kullanarak etkinleştirilirse bazı ek kalıp eşleşme işleçleri kullanılabilir. Aşağıdaki açıklamalarda geçen kalıp-listesi, | karakteri ayraç olarak kullanılmış bir ya da daha fazla kalıptan oluşmuş bir listeyi ifade etmektedir. Birleşik kalıplar aşağıdaki alt kalıplardan biri ya da bir kaçı ile oluşturulabilir:
?(kalıp-listesi)
Belirtilen kalıpların sıfır ya da biri eşlenir.
*(kalıp-listesi)
Belirtilen kalıpların sıfır ya da daha fazlası eşlenir.
+(kalıp-listesi)
Belirtilen kalıpların bir ya da daha fazlası eşlenir.
@(kalıp-listesi)
Belirtilen kalıpların biri eşlenir.
!(kalıp-listesi)
Belirtilen kalıpların biri dışındaki herşey eşlenir.
Önceki Üst Ana Başlık Sonraki
Sözcüklere Ayırma Başlangıç Tırnak kaldırma
Bir Linux Kitaplığı Sayfası