Kurung kurawal selalu dibutuhkan untuk mengakses elemen larik dan melakukan ekspansi penjepit.
Adalah baik untuk tidak terlalu berhati-hati dan menggunakan {}
ekspansi variabel shell bahkan ketika tidak ada ruang untuk ambiguitas.
Sebagai contoh:
dir=log
prog=foo
path=/var/${dir}/${prog} # excessive use of {}, not needed since / can't be a part of a shell variable name
logfile=${path}/${prog}.log # same as above, . can't be a part of a shell variable name
path_copy=${path} # {} is totally unnecessary
archive=${logfile}_arch # {} is needed since _ can be a part of shell variable name
Jadi, lebih baik menulis tiga baris sebagai:
path=/var/$dir/$prog
logfile=$path/$prog.log
path_copy=$path
yang pasti lebih mudah dibaca.
Karena nama variabel tidak dapat dimulai dengan digit, shell tidak perlu di {}
sekitar variabel bernomor (seperti $1
, $2
dll.) Kecuali ekspansi tersebut diikuti oleh digit. Itu terlalu halus dan tidak digunakan secara eksplisit {}
dalam konteks seperti itu:
set app # set $1 to app
fruit=$1le # sets fruit to apple, but confusing
fruit=${1}le # sets fruit to apple, makes the intention clear
Lihat:
{}
dikenal sebagai ekspansi brace .${}
dikenal sebagai ekspansi variabel. Mereka melakukan hal yang berbeda. Saya akan mendukung Anda kecuali sedikit ekspansi.