Dizi elemanlarına erişmek ve küme ayracı genişlemesini gerçekleştirmek için her zaman kıvırcık parantezlere ihtiyaç vardır.
Aşırı ihtiyatlı olmamak ve {}
belirsizlik için bir kapsam olmasa bile kabuk değişkeni genişlemesi için kullanmak iyidir .
Örneğin:
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
Bu nedenle, üç satırı şu şekilde yazmak daha iyidir:
path=/var/$dir/$prog
logfile=$path/$prog.log
path_copy=$path
ki bu kesinlikle daha okunabilir.
Değişken adı bir rakam ile başlayamaz için, kabuk gerek yoktur {}
yaklaşık sayılı değişkenleri (gibi $1
, $2
bu genişleme bir rakam olduğu sürece vb.) Bu çok ince ve bu {}
tür bağlamlarda açıkça kullanılmasını sağlıyor :
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
Görmek:
{}
destek genişletmesi olarak bilinir .${}
değişken genleşme olarak bilinir. Farklı şeyler yaparlar. Genişletme biti dışında sizi oylarım.