Yanıtlar:
Backtick'lere çok benziyor ''.
Buna komut değiştirme ( posix belirtimi ) denir ve bir alt kabuk çağırır. $()
Ters çentiklerin (``) parantezindeki veya ``) parantezindeki komut bir alt kabukta yürütülür ve daha sonra çıkış orijinal komutuna yerleştirilir.
İğnelerin tersine, $(...)
form yuvalanabilir. Böylece, komut değiştirme işlemini başka bir değiştirme içinde kullanabilirsiniz.
İkame içinde kaçan karakterlerde aso farklılıklar vardır. $(...)
Formu tercih ederim .
echo `echo \`echo foo\`` bar
POSIX veya In POSIX'e benzeri kabuklar ( ksh
, bash
, ash
, zsh
, yash
gibi ...), öyle ``
komut içi: $()
yürütülür ve standart çıkışa ile değiştirilir. $()
Çift tırnak içine alınmadıkça , kelime ayırma ve dosya adı oluşturma işlemleri yapılır . Böylece
chmod 777 $(pwd)
aşağıdakilerle değiştirilmelidir:
chmod 777 "$(pwd)"
geçerli çalışma dizini yolunda sözcük bölme ve dosya adı oluşturulmasını önlemek için.
Ya da daha iyisi (dizinin yeniden adlandırılması durumunda zsh gibi bazı kabuklar hariç):
chmod 777 "$PWD"
Çünkü $PWD
POSIX kabuklarında geçerli çalışma dizininin yolunu tutan özel bir değişkendir.
Ya da daha iyisi:
chmod 777 .
Yana .
geçerli dizinde girişi bu dizine kendisi için zor bir bağlantıdır.
Bu $()
, çoğunlukla diğer bazı komutların içindeki bir komutu yürütmek için kullanılır.
chmod 777 $(pwd)
pwd
komutu geçerli çalışma dizinini verir. Yani, her şey yürütüldüğünde pwd çıkışı yerini değiştirecek ve argüman olarak hizmet edecek chmod
ve sonuç şu anki tüm çalışma dizininizin 777
üretim ortamında asla kullanılmaması gerektiğini düşündüğüm izni almasıdır;).