Saya bertanya-tanya tentang tanda kurung tunggal di bash. Saya tahu bahwa mereka digunakan untuk mengeksekusi perintah dalam subkulit dan mereka digunakan untuk membuat array, tetapi apakah mereka digunakan untuk hal lain?
Satu hal yang menarik perhatian saya adalah ketika Anda menggunakan tugas variabel in, seperti
var=(hello)
echo $var # hello
bash tidak menghasilkan kesalahan atau apa pun, dan outputnya sama seperti jika
var=hello
Apakah kedua definisi variabel ini sama atau ada perbedaan?
Jawaban yang Diterima:
Dalam kurung kasus Anda ()
digunakan sebagai definisi array, misalnya
a=(one two three) # array definition
echo "${a}" # print first element of array a
echo "${a[0]}" # print first element of array a
echo "${a[1]}" # print *second* element of array a
echo "${#a[@]}" # print number of elements in array a
Jika Anda meletakkan variabel tunggal dalam array maka Anda hanya memiliki sebuah array dengan elemen tunggal.
Untuk menjawab pertanyaan Anda yang lain apakah tanda kurung juga digunakan untuk hal lain:ada banyak situasi di bash
bahwa dalam kombinasi dengan karakter lain mereka dapat digunakan sebagai:
- substitusi perintah:
$()
- penggantian proses:
<()
dan>()
- subkulit:
(command)
- evaluasi aritmatika:
(())
- definisi fungsi:
fun () { echo x; }
- daftar pola dalam glob:
?()
,*()
,+()
,@()
,!()
(hanya jikaextglob
diaktifkan )