Dari dokumentasi bash :
(list)
daftar dieksekusi dalam lingkungan subkulit (lihat LINGKUNGAN PERINTAH EKSEKUSI di bawah). Penugasan variabel dan perintah bawaan yang memengaruhi lingkungan shell tidak tetap berlaku setelah perintah selesai. Status kembali adalah status keluar dari daftar.
Dengan kata lain, Anda memastikan bahwa apa pun yang terjadi di 'daftar' (seperti a cd
) tidak berpengaruh di luar (
dan )
. Satu-satunya hal yang akan bocor adalah kode keluar dari perintah terakhir atau dengan set -e
perintah pertama yang menghasilkan kesalahan (selain beberapa seperti if
, while
, dll)
((expression))
Ekspresi dievaluasi sesuai dengan aturan yang dijelaskan di bawah ini di bawah EVALUASI ARITHMETIC. Jika nilai ekspresi bukan nol, status pengembalian adalah 0; jika tidak, status pengembaliannya adalah 1. Ini persis sama dengan membiarkan "ekspresi".
Ini adalah ekstensi bash yang memungkinkan Anda melakukan matematika. Ini agak mirip dengan menggunakan expr
tanpa semua keterbatasan expr
(seperti memiliki ruang di mana-mana, melarikan diri *
, dll.)
[[ expression ]]
Kembalikan status 0 atau 1 tergantung pada evaluasi ekspresi ekspresi bersyarat. Ekspresi terdiri dari kata-kata dasar yang dijelaskan di bawah ini di bawah EKSPRESI KONDISI. Pemisahan kata dan perluasan pathname tidak dilakukan pada kata-kata antara [[dan]]; ekspansi tilde, ekspansi parameter dan variabel, ekspansi aritmatika, substitusi perintah, substitusi proses, dan penghapusan kutipan dilakukan. Operator bersyarat seperti -f harus tanda kutip untuk diakui sebagai primer.
Saat digunakan dengan [[, operator <dan> mengurutkan secara leksikografis menggunakan lokal saat ini.
Ini menawarkan tes lanjutan untuk membandingkan string, angka, dan file sedikit seperti test
penawaran, tetapi lebih kuat.
[ expr ]
Kembalikan status 0 (benar) atau 1 (salah) tergantung pada evaluasi ekspresi bersyarat expr. Setiap operator dan oper dan harus argumen yang terpisah. Ekspresi terdiri dari kata-kata pendahuluan yang dijelaskan di atas di bawah EKSPRESI KONDISI. tes tidak menerima opsi apa pun, juga tidak menerima dan mengabaikan argumen - sebagai menandakan akhir opsi.
[...]
Yang ini panggilan test
. Sebenarnya, di masa lalu, [
adalah tautan simbolis ke test
. Ini bekerja dengan cara yang sama dan Anda memiliki keterbatasan yang sama. Karena biner mengetahui nama yang digunakannya untuk memulai, program uji dapat mengurai parameter sampai ia menemukan parameter ]
. Trik Unix yang menyenangkan.
Perhatikan bahwa dalam kasus bash
, [
dan test
merupakan fungsi bawaan (seperti yang disebutkan dalam komentar), namun batasan yang hampir sama berlaku.