Saya baru-baru ini mulai menggeser skrip shell saya dari menggunakan backticks ke parens untuk mengeksekusi perintah in situ dan menggunakan hasilnya dalam sesuatu yang lain. Misalnya:
for line in `cat file`
do
echo "$line"
done
Sekarang saya menggunakan parens, sebagai gantinya:
for line in $(cat file)
...
Apa perbedaan yang sebenarnya antara kedua metode, dan mengapa substitusi paren dianggap lebih baik daripada backticks?
bash
shell-script
backticks
warren
sumber
sumber
$(cat file)
dengan$(< file)
yang dilakukan sepenuhnya dalam shell (menyimpan mikrodetik berharga jika tidak terbuang untuk menghasilkan proses kucing).for
untuk mengurai sesuatu baris demi baris.Jawaban:
Tidak ada perbedaan fungsional, namun
$()
membuat bersarang sedikit lebih bagus dan lebih mudah diikuti. Perhatikan contoh konyol ini:vs.
Sekarang pertimbangkan untuk melakukannya dengan serangkaian perintah kompleks yang melakukan sesuatu yang bermanfaat;).
sumber