Saya melihat sintaks berikut dalam skrip bash:
>$(command) &
Saya tahu bahwa ampersand &
pada akhirnya membuat perintah berjalan di latar belakang, tetapi saya belum pernah melihatnya dalam kombinasi dengan tanda dolar ditambah tanda kurung di sekitar perintah.
Apa fungsinya?
$( )
, tetapi tidak ada istirahat. Hanya saja$(command) &
, itulah yang membingungkan saya.Jawaban:
Jawaban singkat
Mengingat sintaks
$(command) &
, hasilnya adalah sama seperti jika Anda mengambil output dari berjalan hanyacommand
dan kemudian mencoba untuk menjalankan bahwa sebagai perintah. Dan semua ini akan dilakukan di latar belakang, artinya tidak akan ada output yang terlihat atau tergantung di terminal.Misalnya, jika kami memiliki file teks bernama
mycommand.txt
dengan konten:Lalu perintahnya
akan setara dengan berjalan
Tetapi karena kita menambahkan ampersand (
&
), kita tidak akan melihat output dari perintah ini, jadi itu akan sangat tidak berguna dalam contoh ini.Jawaban Panjang (Penjelasan)
Tanda dolar
$
(Variabel)Tanda dolar sebelum tanda kurung biasanya merujuk pada variabel. Ini berarti bahwa perintah ini memberikan argumen ke variabel itu dari skrip bash atau mendapatkan nilai variabel itu untuk sesuatu. Perbedaan dalam skrip bash untuk memanggil dan mendeklarasikan variabel seperti:
Deklarasikan variabel tanpa tanda dolar dan sebut dengan tanda dolar. Misalnya, skrip yang berisi ini
Akan menampilkan ini
Parenthesis
()
- Substitusi perintahSubstitusi perintah memungkinkan output dari suatu perintah untuk menggantikan perintah itu sendiri. Substitusi perintah terjadi ketika perintah terlampir sebagai berikut:
atau
Bash melakukan ekspansi dengan mengeksekusi perintah di lingkungan subkulit dan mengganti substitusi perintah dengan output standar dari perintah, dengan setiap baris baru yang tertinggal dihapus. Baris baru yang disematkan tidak dihapus, tetapi mereka dapat dihapus selama pemisahan kata. Substitusi perintah
$(cat file)
dapat diganti dengan yang setara tetapi lebih cepat$(< file)
.Ampersand
&
- Proses latar belakangDan kemudian ampersand, atau
&
simbol, seperti yang Anda katakan, digunakan untuk menjalankannya di latar belakang.sumber
dibutuhkan output dari "command" sebagai perintah dan menjalankannya di latar belakang. Secara fungsional sebanding dengan "eval"
sumber