"Kaldırılmış" olmak üzere iki farklı anlam vardır.
kullanımdan kaldırılabilir: (temel olarak bir yazılım özelliğine sahip) kullanılabilir, ancak genellikle geçersiz kılındığından dolayı eski ve en iyi şekilde kaçınılmalıdır.
—Yeni Oxford Amerikan Sözlüğü
Bu tanıma göre backticks edilir kullanımdan kaldırıldı.
Kullanımdan kaldırılan durum, özelliğin gelecekte kaldırılacağını da gösterebilir.
- Wikipedia
Bu tanım gereği, backticks itiraz edilmemektedir .
Hala destekleniyor:
Kabuk Komutanlığı Dillerinde Açık Grup Spesifikasyonundan , özellikle de "2.6.3 Komuta Değiştirme" bölümünden bahseden, her iki komuta ikame formunun, backtick'lerin ( `..cmd..`
) veya dolar parensinin ( $(..cmd..)
), şartnamenin devam ettiği sürece desteklendiği görülebilir .
alıntı
Komut değiştirme, bir komutun çıktısının, komut adının yerine yerine kullanılmasına izin verir. Komut şu şekilde eklendiğinde, komut değiştirme yapılır:
$(command)
or (backquoted version):
`command`
Kabuk, bir alt kabuk ortamında (bkz. Shell Yürütme Ortamı) komutu yürüterek $()
ve bir veya daha fazla sekansı kaldırarak komutun yerine koyma komutunu değiştirerek (komutun metni artı ek veya geri tırnaklar) komutun yerine geçmesiyle komut değiştirme işlemini genişletmelidir. Değişimin sonunda <newline> karakterleri. Çıktının sonundan önce gömülü <newline> karakterleri kaldırılmayacaktır; Bununla birlikte, bunlar IFS'in değerine ve yürürlükte olan alıntılara bağlı olarak saha sınırlayıcıları olarak ele alınabilir ve tarla bölünmesi sırasında elimine edilebilir. Çıktı boş baytlar içeriyorsa, davranış belirtilmemiş.
Tersine çevrilmiş komut değiştirme stilinde, <backslash> , '$', ' \`
' veya <backslash> ile belirtilen durumlar haricinde, gerçek anlamını korur . Eşleşen backquote için yapılan arama, ilk alıntılanmamış kaçış olmayan geri alıntı ile sağlanacaktır; Bu arama sırasında, bir kabuk yorumunda çıkmayan $(command)
bir geri alıntı ile karşılaşılırsa, burada bir belge, formun gömülü bir komut ikamesi veya alıntı bir dize, tanımlanmamış sonuçlar ortaya çıkar. " `...`
" Dizisi içinde başlayan, ancak bitmeyen, tek tırnaklı veya çift tırnaklı bir dize tanımsız sonuçlar üretir.
İle $(command)
forma, eşleştirme kapanış parantez açık parantez aşağıdaki tüm karakterler komutunu oluşturmaktadır. Herhangi bir geçerli kabuk betiği, yalnızca belirtilmemiş sonuçları üreten yeniden yönlendirmelerden oluşan bir komut dosyası dışında komut için kullanılabilir.
Öyleyse neden herkes geri tepmelerin kullanımdan kaldırıldığını söylüyor?
Çünkü kullanım durumlarının çoğu , backticks yerine dolar parensinden faydalanıyor olmalı . (Yukarıdaki ilk anlamda kullanımdan kaldırılmıştır.) En saygın sitelerin çoğu (U&L dahil) çoğu zaman bunu da ifade eder, bu yüzden sağlam bir tavsiyedir. Bu tavsiye, geri tepmeler için mermi kovanı desteğini kaldırmak için mevcut olmayan bazı planlarla karıştırılmamalıdır.
NOT: Bu üçüncü alıntı (yukarıda), backtick'lerin işe yaramayacağı birkaç durum göstermeye devam eder, ancak yeni dolar parensi yöntemi, aşağıdaki paragraftan başlayarak başlar:
Ek olarak, backquoted sözdiziminin gömülü komutun içeriği üzerinde tarihsel kısıtlamaları vardır. Yeni "$ ()" formu her türlü geçerli gömülü betiği işleyebilse de, geri döndürülen form, geri alıntı içeren bazı geçerli komut dosyalarını işleyemez.
Bu bölümü okumaya devam ederseniz, backticks kullanarak nasıl başarısız olacağını gösteren başarısızlıklar vurgulanır, ancak yeni dolar parens notasyonu kullanarak çalışır.
Sonuçlar
Bu nedenle, geri tepme yerine dolar parenini kullanmanız tercih edilir, ancak teknik olarak "kullanımdan tamamen kaldırılmış" olan ve tamamen planlanmış bir noktada çalışmayı durduracak bir şey kullanmıyorsunuzdur.
Tüm bunları okuduktan sonra, özellikle POSIX’li olmayan orijinal bir Bourne kabuğu ile uyumluluk gerektirmedikçe, dolar parenini kullanmaya şiddetle teşvik edilmeniz gerekir.
cd
$(...)
gösterimin neden iç içe geçmiş alıntılardan daha kolay kullanıldığına ilişkin bir örnek için bir dizine yardımcı olmama bakın .