GNU/Linux >> Belajar Linux >  >> Linux

Perbedaan antara ${} dan $() di Bash

$(cmd) mengganti hasil dari cmd sebagai string, sedangkan (cmd; cmd) jalankan daftar perintah dalam subproses.

Jika Anda ingin memasukkan keluaran dari satu atau lebih perintah ke dalam variabel, gunakan formulir $( cmd ).

Namun jika Anda ingin menjalankan sejumlah perintah dan memperlakukannya sebagai satu unit, gunakan formulir ().

Yang terakhir berguna saat Anda ingin menjalankan serangkaian perintah di latar belakang:

(git pull; make clean; make all) &

Itu adalah hal yang berbeda.

$() mengevaluasi ekspresi (mengeksekusi perintah) seperti `` (backticks)

> (echo ls)
ls

> $(echo ls)
file1  file2

> `echo ls`
file1  file2

> echo $(echo ls)
ls

Keduanya berbeda, tetapi ada hubungan mnemonik di antara keduanya.

(...) adalah perintah yang memulai subkulit baru tempat perintah shell dijalankan.

$(...) adalah ekspresi yang memulai subkulit baru, yang perluasannya merupakan keluaran standar yang dihasilkan oleh perintah yang dijalankannya.

Ini mirip dengan pasangan perintah/ekspresi lain di bash :((...)) adalah pernyataan aritmatika, sedangkan $((...)) adalah ekspresi aritmatika.


Linux
  1. Pelajari Perbedaan Antara Perintah "su" dan "su -" di Linux

  2. Perbedaan Antara Perintah Menghentikan dan Mematikan?

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

  1. perbedaan antara cgroup dan namespace

  2. Perbedaan antara perintah dalam skrip bash dan perintah di terminal

  3. Perbedaan antara perintah 'ifconfig' dan 'ip'

  1. Perbedaan Antara Perintah "su" dan "su -" di Linux

  2. Perbedaan Antara Shell Login dan Shell Non-login?

  3. Perbedaan Antara ' Dan ” Di Command Line (bash)??