GNU/Linux >> Belajar Linux >  >> Linux

Gunakan $[ Ekspr ] Alih-alih $(( Ekspr ))?

Pada paragraf yang menjelaskan ekspansi aritmatika, panduan pengguna Bash mengungkap 2 cara berbeda untuk mengevaluasi ekspresi, yang pertama menggunakan $(( EXPRESSION )) dan yang kedua menggunakan $[ EXPRESSION ] . Kedua cara tersebut tampaknya sangat mirip karena satu-satunya perbedaan yang saya temukan adalah:

$[ EXPRESSION ] hanya akan menghitung hasil EKSPRESI, dan tidak melakukan tes:

Namun, saya tertarik karena dokumen yang sama merekomendasikan penggunaan $[ EXPRESSION ] daripada $(( EXPRESSION )) .

Jika memungkinkan, pengguna Bash harus mencoba menggunakan sintaks dengan tanda kurung siku:

Mengapa Anda menginginkannya jika lebih sedikit pengujian yang dilakukan?

Jawaban yang Diterima:

Pertanyaan Duplikasi (dengan jawaban)

https://stackoverflow.com/questions/2415724/bash-arithmetic-expression-vs-arithmetic-expression

Halaman manual untuk bash v3.2.48 mengatakan:

[…] Format untuk ekspansi aritmatika adalah:

 $((expression)) 

format lama $[expression] tidak digunakan lagi dan akan dihapus di versi bash yang akan datang.

Jadi $[…] adalah sintaks lama yang tidak boleh digunakan lagi

Selain jawaban itu:

http://manual.cream.org/index.cgi/bash.1#27

Info yang berkaitan dengan versi bash:

Berikut adalah beberapa info tentang halaman manual bash (sulit untuk menemukan info tentang versi apa yang dirujuk masing-masing halaman):

Tautan OP:

http://www.tldp.org/guides.html Panduan Bash untuk Pemula
versi:1.11
penulis:Machtelt Garrels,
pembaruan terakhir:Des 2008

sth (74,6k rep) mengutip bash v3.2.48

dari https://stackoverflow.com/questions/2415724/bash-arithmetic-expression-vs-arithmetic-expression)

Catatan:Info lebih lanjut tentang [] vs (()) di sini:http://lists.gnu.org/archive/html/bug-bash/2012-04/msg00033.html

tautan yang saya temukan:

http://www.gnu.org/software/bash/manual/ terakhir diperbarui 22 Agustus 2012

http://www.gnu.org/software/bash/manual/bash.html#Arithmetic-Expansion


Linux
  1. Gunakan Ekstensi .sh Atau .bash Untuk Skrip Bash?

  2. Shell Mana yang Harus Saya Gunakan – Tcsh Vs Bash??

  3. bagaimana cara menggunakan kill SIGUSR2 di bash?

  1. Gunakan pengatur waktu systemd alih-alih cronjobs

  2. Bagaimana cara mengurai header HTTP menggunakan Bash?

  3. Apa gunanya $# di Bash

  1. Cara menggunakan perintah riwayat Bash

  2. Mengapa Saya Tidak Dapat Menggunakan Cd Dalam Skrip Bash??

  3. Tanda kurung Dalam Expr Aritmatika:3 * (2 + 1)?