Фігурні дужки завжди потрібні для доступу до елементів масиву та проведення розширення дужок.
Добре бути не надто обережним і використовувати {}
для розширення змінної оболонки навіть тоді, коли немає можливості для двозначності.
Наприклад:
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
Подивитися:
{}
відомий як розширення дужок .${}
відомий як змінне розширення. Вони роблять різні речі. Я б схвалив вас за винятком біта розширення.