การจัดฟันแบบลอนนั้นจำเป็นสำหรับการเข้าถึงองค์ประกอบของอาเรย์และทำการขยายส่วนเสริม
เป็นการดีที่จะไม่ระมัดระวังและใช้{}
สำหรับการขยายตัวแปรเชลล์แม้ว่าจะไม่มีขอบเขตสำหรับความคลุมเครือก็ตาม
ตัวอย่างเช่น:
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
ดังนั้นจะเป็นการดีกว่าถ้าเขียนสามบรรทัดดังนี้:
path=/var/$dir/$prog
logfile=$path/$prog.log
path_copy=$path
ซึ่งแน่นอนอ่านได้มากขึ้น
เนื่องจากชื่อตัวแปรไม่สามารถเริ่มต้นด้วยหลักเชลล์จึงไม่จำเป็นต้องใช้{}
ตัวแปรที่มีหมายเลข (เช่น$1
และ$2
อื่น ๆ ) เว้นแต่ว่าจะมีการขยายตัวตามด้วยตัวเลข มันบอบบางเกินไปและทำให้ใช้งานอย่างชัดเจน{}
ในบริบทดังกล่าว:
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
ดู:
{}
เป็นที่รู้จักกันการขยายตัวรั้ง${}
เรียกว่าการขยายตัวของตัวแปร พวกเขาทำสิ่งต่าง ๆ ฉันจะลงคะแนนให้คุณยกเว้นบิตที่ไม่มีส่วนขยาย