Linux gibi GNU tabanlı işletim sistemleri , bilgi işlem görevlerinin ve hedeflerinin çoğunu gerçekleştirmek için bir komut dili yorumlayıcısına veya Bash adlı kabuğa güvenir .
Uyumluluk açısından Bash ve sh mükemmel bir eşleşmedir. C kabuğunda ( csh ) ve Korn kabuğunda ( ksh ) belirgin olan faydalı özellikler de bu kabuk dili yorumlayıcısına dahil edilmiştir.
Uygulama açısından, Bash’in IEEE POSIX belirtimine (IEEE Standard 1003.1) Araçlar bölümüne ve IEEE POSIX Kabuğuna uyması amaçlanmıştır. Bu nedenle, etkileşimli ve programlama aracı olarak Bash tarafından sunulan işlevsel iyileştirmeler, sh’de bulunanları gölgede bırakır .
Linux ve diğer GNU tabanlı işletim sistemlerinin kullanıcıları, csh gibi kabuk sürümleri de bu sistemlerde önceden paketlenmiş olduğundan, birincil komut dili yorumlayıcıları yalnızca Bash’e güvenmek zorunda değildir. Bash, taşınabilirlik gibi benzersiz kabuk nitelikleri nedeniyle yalnızca varsayılan bir Linux kabuğu olarak çalışacak şekilde yapılandırılmıştır.
Bash’de $() ile ${} karşılaştırması
Bash ortamıyla ilişkili bu iki özniteliği karşılaştırmak için $() ile $(command) ve ${} ile ${parameter} öğelerini yinelememiz gerekecek. Bu nedenle, bu iki Bash varlığını tanımlamaya çalışabiliriz.
$(command)’ı anlama
Bash’deki $(command), komut değiştirme ile ilgilidir. Daha açık olmak gerekirse, $(command) içindeki komut kısmı yürütülür, çıktısı alınır ve standart çıktıya yazdırılır.
$(command) arkasındaki sözdizimi belirteç düzeyindedir. Geçerli tarihi terminalde yazdırmayı amaçlayan aşağıdaki komutun yürütülmesini düşünün.
$ echo "Today is $(date). A fine day."

Yukarıdaki yürütme şu şekilde açıklanabilir. İlk olarak, date komutu yürütülür ve çıktısı, echo komutuna bir argüman olarak dahil edilir .
Burada, komut ikamesinin ana kabuğa yeniden dahil edilmeden önce ayrı bir alt kabukta yürütüldüğünü varsayabiliriz.
${parameter}’ı anlama
Bash’deki ${parameter}, parametre değiştirme ile ilgilidir. Bash kılavuz sayfasına göre, bir parametre değer depolayan bir varlıktır. Parametre varlığı bir ad, bir sayı veya özel karakterlerle ilişkilendirilebilir.
{} ayraçları, konumsal bir parametreyle ilgilendiğimizi veya kullanımdaki parametrenin (parametre değeri) yerine, parametre adıyla ilişkilendirilmeyecek, yorumlayıcı olmayan bir karakterin geldiğini ima eder, örneğin ${animal}s.
Konumsal parametrelere gelince, onu belirtmek için bir veya daha fazla basamak kullanılabilir (tek basamak 0 hariç). Bu nedenle, $variable_name adında bir değişkenimiz varsa, ilişkili değişken değerini almak için ${parameter} parametre ikamesi kullanılabilir.
Aşağıdaki değişken bildirim komutunu göz önünde bulundurun:
$ animal=lion
Değişken değerini çoğul hale getirmek için animal değişkenini çağıralım :
$ echo $animals

Bash, $animals değişkenini anlamadığından standart çıktıya hiçbir şey yazdırılmaz. Bununla birlikte, parametre ikame yaklaşımını aşağıdaki şekilde kullanarak $animals değişkenimizi başarıyla çağırabiliriz:
$ echo ${animal}s
Yazının orijnalini buradan okuyabilirsiniz.

Kariyerime 26 yıl önce başladım. Windows ve Linux sistemlerinin kurulumu, yapılandırılması, yönetimi ve bakımı dahil olmak üzere birden fazla sistem üzerinde uzmanlaştım.
Açık kaynak dünyasındaki en son gelişmelerden haberdar olmaktan ve Linux hakkındaki en son araçları, özellikleri ve hizmetleri denemekten hoşlanıyorum.
Son 6 yıldır sistem ve ağ yöneticisi olarak görev yapıyorum ayrıca Pardus Dönüşüm Projesini yönetiyorum ve Pardus İşletim Sisteminin yaygınlaşması adına uğraş gösteriyorum.
Boş zamanlarımda açık kaynaklı uygulamaların Türkçe çevirisine katılıyorum ve The Document Foundation üyesiyim.