Ada dua sintaks untuk substitusi perintah:dengan tanda kurung dolar dan backticks.
Menjalankan top -p $(pidof init) dan top -p `pidof init` memberikan keluaran yang sama. Apakah kedua cara ini melakukan hal yang sama, atau adakah perbedaan?
Jawaban yang Diterima:
Kutipan balik gaya lama ` ` lakukan perlakukan garis miring terbalik dan bersarang sedikit berbeda. $()style gaya baru menafsirkan segala sesuatu di antara ( ) sebagai perintah.
echo $(uname | $(echo cat))
Linux
echo `uname | `echo cat``
bash: command substitution: line 2: syntax error: unexpected end of file
echo cat
berfungsi jika backquotes bersarang diloloskan:
echo `uname | `echo cat``
Linux
backslash menyenangkan:
echo $(echo '\')
\
echo `echo '\'`
$()style gaya baru berlaku untuk semua shell yang sesuai dengan POSIX.
Seperti yang ditunjukkan mouviciel, ` ` gaya lama mungkin diperlukan untuk shell yang lebih tua.
Terlepas dari sudut pandang teknis, ` ` . gaya lama juga memiliki kelemahan visual:
- Sulit untuk diperhatikan:
I like $(program) better than `program` - Mudah bingung dengan satu kutipan:
'`'`''`''`'`''`' - Tidak begitu mudah untuk mengetik (bahkan mungkin tidak pada tata letak standar keyboard)
(dan SE menggunakan ` ` untuk tujuan sendiri, itu menyakitkan menulis jawaban ini