Ayrımlama
Önceki Kabukta Sözdizimi Sonraki
Ayrımlama
Ayrımlama işlemi kabukta, sözcükler ve karakterlerden özel anlamlandırmanın kaldırılması anlamında kullanılmıştır. Ayrımlama özel karakterlerin özel davranışlarını ortadan kaldırarak, onların anahtar sözcükler olarak tanımlanmasını ya da parametreler olarak algılanmasını engellemek için kullanılır.
Kabuk metakarakterlerinin herbirinin kabuğa özel anlamı vardır ve bunlar sadece kendileri olarak ele alınacaksa tırnak içine alınmalıdır. Komut geçmişine ilişkin özellikler kullanılacaksa geçmiş yorumlama karakteri olan ! işaretinin geçmiş yorumlaması yapılacak şeklinde algılanmasını engellemek için bu karakter tırnak içine alınmalıdır. Geçmiş yorumlaması ile ilgili daha ayrıntılı bilgi edinmek için Bash'in Geçmişsel Yetenekleri bölümüne bakınız.
Üç tane ayrımlama mekanizması vardır: önceleme karakteri, tek tırnak ve çift tırnak.
Önceleme karakteri
Tırnak içine alınmamış bir tersbölü işareti \ Bash önceleme karakteri adını alır. Kendisinden sonra gelen bir karakterin ya da sayısal bir karakter sabitinin değeri satırsonu karakteri hariç korunur. Eğer bir satırın sonunda tek başına ve tırnak içine alınmamış bir \ karakterini izleyen bir satırsonu karakteri varsa yani, satırın sonunda bir \satırsonu çifti varsa, bu satır ve altındaki satır tek bir satır olarak yorumlanır (Bu durumda bu çift girdiden kaldırılır yani yoksayılır).
Tek Tırnak
Tek tırnak (') içine alınmış karakterlerin değeri korunur. Ancak tek tırnak karakteri, önceleme karakteri ile öncelenmiş olsa bile, tek tırnak karakterleri arasında bulunamaz.
Çift Tırnak
Çift tırnak (") içine alınmış karakterlerin $, `, \ ve geçmiş yorumlaması etkinse ! karakterleri hariç değerleri korunur. Çift tırnak içine alınmış $ ve ` karakterleri özel anlamlarını korurlar (Kabuk Yorumları bölümüne bakınız). \ karakteri ise $, `, ", \ veya satırsonu karakterlerini öncelemek için kullanılmışsa özel anlamını korur. Çift tırnak içindeki önceleme karakterlerinden bu karakterleri öncelemekte kullanılanları kaldırılır. Özel anlamı olmayan karakterleri öncelemekte kullanılan önceleme karakteri değişmeden kalır. Bir çift tırnak, önceleme karakteri ile öncelenerek çift tırnaklar arasında kullanılabilir. Geçmiş yorumlaması etkinse, çift tırnaklar içinde bir ! varsa ve önceleme karakteri ile öncelenmiş değilse geçmiş yorumlaması uygulanır.
Özel karakterler olan * ve @ çift tırnaklar arasında özel anlama sahiptir (Kabuk Parametrelerinin Yorumlaması bölümüne bakınız).
ANSI-C Ayrımlaması
$'dizge' biçimindeki sözcükler özel olarak ele alınır. Sözcük, içindeki ANSI C standardında belirtilen tersbölü öncelemeli karakterler yorumlanarak dizgeye dönüştürülür. Varsa tersbölü öncelemeli karakterler aşağıdaki gibi yorumlanır:
\a
uyarı (zil)
\b
gerisilme
\e
önceleme karakteri (ANSI C değil)
\f
sayfa ileri
\n
satırsonu
\r
satırbaşı
\t
yatay sekme
\v
düşey sekme
\\
tersbölü
\'
tek tırnak
\nnn
Sekizlik tabanda nnn (3 rakamlı bir sayı) olarak değeri verilen sekiz bitlik karakter
\xHH
Onaltılık tabanda HH (iki onaltılık rakam) olarak değeri verilen sekiz bitlik karakter
\cx
Bir <Ctrl>-<x> karakteri
Sonuç, dolar işareti yokmuşçasına tek tırnaklar içine alınır.
Yerele Özel Çeviri
$ işareti ile öncelenmiş çift tırnaklı bir dizge ($"dizge") yerel dile çevrilir. Eğer yerel ayarları C ya da POSIX ise $ işareti yoksayılır. Yerel dile çevrilen dizgeden çift tırnaklar kaldırılmaz.
Bazı sistemler LC_MESSAGES ortam değişkeni ile belirtilen yerelin ileti kataloglarını kullanırken bazıları da TEXTDOMAIN ortam değişkenindeki, genellikle .mo sonekli dosya ismi ile belirtilen ileti kataloğunu kullanır. TEXTDOMAIN değişkeni kullanıldığında, dosyanın bulunduğu yerin TEXTDOMAINDIR ortam değişkeni ile belirtilmesi gerekir. Bazıları da bu her iki değişkeni birlikte kullanabilir: TEXTDOMAINDIR/LC_MESSAGES/LC_MESSAGES/TEXTDOMAIN.mo.
Önceki Üst Ana Başlık Sonraki
Kabuk İşlemleri Başlangıç Betiklerde Açıklamalar
Bir Linux Kitaplığı Sayfası