Ini adalah pemahaman saya bahwa $(...)sintaks substitusi perintah yang lebih modern lebih disukai daripada `sintaks berbasis lama , karena lebih mudah dan lebih sedikit rawan kesalahan bersarang dan lolos sintaksis.
Selanjutnya, tampaknya sebagian besar /bin/shkerang bergaya dalam dukungan penggunaan modern $(…):
- pesta
- ash (dan karena itu BusyBox, jadi kebanyakan embedded Linux)
- berlari
- FreeBSD / bin / sh
Dan $(…)ditentukan oleh IEEE 1003.1.
Jadi saya punya 2 pertanyaan yang sangat terkait:
- Apakah ada alasan untuk menggunakan `dalam pengembangan skrip shell baru kecuali Anda mengetahui sistem lama tertentu yang harus dijalankan skrip?
- Apakah ada alasan untuk tidak mengajar siswa pemrograman UNIX hanya untuk menulis
$(...), dan membahas`hanya sebagai varian usang yang kemungkinan akan mereka temui jika mereka membaca skrip shell pengembang lain (dan mungkin perlu jika mereka bekerja dengan sistem yang benar-benar tua atau tidak standar) untuk beberapa alasan)?
$()- shift + 4,9, shift + 0 - 5 penekanan tombol;
`...`. Itu ada untuk portabilitas mundur dengan shell Bourne saja (seperti shell Bourne miliki^(sama seperti|) untuk portabilitas mundur dengan shell Thomson). Namun perhatikan bahwa(t)cshtidak ada$(...)(tetapi tidak ada gunanya menggunakan atau mengajar mereka juga).