GNU/Linux >> Belajar Linux >  >> Linux

Kurung Tunggal Dalam Penugasan Variabel Bash?

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 jika extglob diaktifkan )

Linux
  1. Skrip bash(I)

  2. Bash Array Dari Array?

  3. Array di Bash Tidak Ditemukan

  1. Konversikan string teks dalam bash ke array

  2. Keluar dari kode penugasan variabel ke substitusi perintah di Bash

  3. Masalah dengan variabel bash berkembang dengan tanda kutip tunggal

  1. Nama Variabel Bash Dinamis (variabel)?

  2. Bagaimana Cara Membuat Array Elemen Unik Dari String/array Di Bash?

  3. Apakah `deklarasikan -a A` Membuat Array Kosong `a` Di Bash?