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/sh
kerang 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)csh
tidak ada$(...)
(tetapi tidak ada gunanya menggunakan atau mengajar mereka juga).