GNU/Linux >> Belajar Linux >  >> Linux

Apa Perbedaan Antara $(stuff) dan `stuff`?

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


Linux
  1. Apa perbedaan antara InnoDB dan MyISAM?

  2. Perbedaan Antara [[ $a ==Z* ]] Dan [ $a ==Z* ]?

  3. Apa Perbedaan Antara Sudo Su – Dan Sudo Su —?

  1. Perbedaan Getty dan Agetty?

  2. Perbedaan Antara .exrc Dan .vimrc?

  3. Apa Perbedaan Antara Pengguna Biasa dan Pengguna Sistem?

  1. Perbedaan Antara '$ . Foo' Dan '$ ./foo'??

  2. Linux – Apa Perbedaan Antara `su -` Dan `su –login`?

  3. Perbedaan Antara ~/.profile Dan ~/.bash_profile?