Komut Değiştirme
Başka bir seçenek de Komut Değiştirme kullanmaktır . Bir komutun kaydırılması komutu $()
çalıştırır ve komutu çıktısıyla değiştirir.
cat $(find ./inhere -size 1033c 2> /dev/null)
Olacak
cat ./inhere/file1 .inhere/file3
Bu, geri kenelerle eski sarma komutları stilini kullanmaya daha fazla veya daha az eşdeğerdir:
cat `find ./inhere -size 1033c 2> /dev/null`
Yukarıda bağlantılı dokümanlardan daha fazla ayrıntı
Bash, bir alt kabuk ortamında komut yürüterek ve komut ikamesini, komutun standart çıktısıyla değiştirerek ve sondaki yeni satırlar silinerek genişletmeyi gerçekleştirir. Katıştırılmış yeni satırlar silinmez, ancak kelime ayırma sırasında kaldırılabilir. Komut ikamesi $(cat file)
, eşdeğer ancak daha hızlı ile değiştirilebilir $(< file)
.
İkame eski tarz backquote formu kullanıldığında, eğik çizgi takip durumlar hariç, değişmez anlamı taşır $
, `
ya da \
. Ters eğik çizgiden önce gelmeyen ilk backquote, komut değişikliğini sonlandırır. $(command)
Formu kullanırken, parantezler arasındaki tüm karakterler komutu oluşturur; hiçbirine özel muamele edilmez.
Komut ikameleri iç içe olabilir. Geri alıntılanan formu kullanırken yuvalamak için, iç ters tırnaklardan ters eğik çizgilerle kaçın.
İkame çift tırnak içinde görünüyorsa, sonuçlarda sözcük bölme ve dosya adı genişletme yapılmaz.
Bazı iyi kullanım örnekleri için bu diğer cevaba bakınız .