Ada dua arti berbeda "usang".
menjadi usang: (terutama fitur perangkat lunak) dapat digunakan tetapi dianggap usang dan sebaiknya dihindari, biasanya karena telah digantikan.
—New Oxford American Dictionary
Dengan definisi ini backticks sudah tidak digunakan lagi.
Status yang sudah ditinggalkan juga dapat menunjukkan bahwa fitur tersebut akan dihapus di masa mendatang.
- Wikipedia
Dengan definisi ini backticks tidak ditinggalkan.
Masih didukung:
Mengutip Spesifikasi Grup Terbuka tentang Bahasa Perintah Shell , khususnya bagian "2.6.3 Substitusi Perintah," dapat dilihat bahwa kedua bentuk substitusi perintah, backticks ( `..cmd..`
) atau dolar parens ( $(..cmd..)
) masih didukung sejauh spesifikasi berjalan.
kutipan
Substitusi perintah memungkinkan output dari suatu perintah untuk diganti di tempat nama perintah itu sendiri. Substitusi perintah akan terjadi ketika perintah terlampir sebagai berikut:
$(command)
or (backquoted version):
`command`
Shell harus memperluas substitusi perintah dengan mengeksekusi perintah di lingkungan subkulit (lihat Lingkungan Eksekusi Shell) dan mengganti substitusi perintah (teks perintah ditambah penutup $()
atau tanda kutip kembali) dengan output standar dari perintah, menghapus urutan satu atau lebih <newline> karakter di akhir substitusi. Karakter <newline> yang disematkan sebelum akhir output tidak akan dihapus; Namun, mereka dapat diperlakukan sebagai pembatas lapangan dan dihilangkan selama pemisahan lapangan, tergantung pada nilai IFS dan kutipan yang berlaku. Jika output berisi byte nol, perilaku tidak ditentukan.
Dalam gaya substitusi perintah yang dikutip ulang, <backslash> akan mempertahankan makna literalnya, kecuali bila diikuti oleh: '$', ' \`
', atau <backslash> . Pencarian untuk backquote yang cocok harus dipenuhi oleh backquote tanpa tanda kutip pertama yang tidak diloloskan; selama pencarian ini, jika backquote yang tidak diloloskan ditemui dalam komentar shell, dokumen-di sini, substitusi perintah tertanam dari $(command)
formulir, atau string yang dikutip, hasil yang tidak ditentukan terjadi. String yang dikutip satu atau dua yang dimulai, tetapi tidak berakhir, dalam urutan " `...`
" yang menghasilkan hasil yang tidak ditentukan.
Dengan $(command)
formulir, semua karakter yang mengikuti tanda kurung terbuka hingga tanda kurung penutup yang cocok merupakan perintah. Setiap skrip shell yang valid dapat digunakan untuk perintah, kecuali skrip yang hanya terdiri dari arahan ulang yang menghasilkan hasil yang tidak ditentukan.
Jadi mengapa semua orang mengatakan bahwa backtick telah ditinggalkan?
Karena sebagian besar kasus penggunaan harus menggunakan bentuk dolar parens daripada backticks. (Sudah usang dalam arti pertama di atas.) Banyak situs yang paling terkemuka (termasuk U&L) sering menyatakan ini juga, secara keseluruhan, jadi itu saran yang bagus. Nasihat ini tidak boleh dikacaukan dengan beberapa rencana yang tidak ada untuk menghapus dukungan untuk backtick dari shell.
CATATAN: Kutipan ketiga ini (di atas) melanjutkan untuk menunjukkan beberapa situasi di mana backtick tidak akan berfungsi, tetapi metode dolar parens yang baru tidak, dimulai dengan paragraf berikut:
Selain itu, sintaks backquoted memiliki batasan historis pada konten perintah yang tertanam. Sementara bentuk "$ ()" yang lebih baru dapat memproses segala jenis skrip tertanam yang valid, formulir yang dikutip ulang tidak dapat menangani beberapa skrip yang valid yang menyertakan backquote.
Jika Anda terus membaca bagian itu, kegagalan yang disorot menunjukkan bagaimana mereka akan gagal menggunakan backtick, tetapi bekerja menggunakan notasi dolar parens yang lebih baru.
Kesimpulan
Jadi lebih baik Anda menggunakan dolar parens daripada backticks tetapi Anda tidak benar-benar menggunakan sesuatu yang secara teknis "usang" seperti dalam "ini akan berhenti bekerja sepenuhnya pada titik yang direncanakan."
Setelah membaca semua ini, Anda harus mengambil bahwa Anda sangat dianjurkan untuk menggunakan dolar parens kecuali Anda secara khusus memerlukan kompatibilitas dengan shell Bourne non-POSIX asli nyata.
cd
ke direktori untuk contoh mengapa$(...)
notasi lebih mudah digunakan daripada kutipan balik bersarang.