Per секция 3.5.1 Баш ручной :
Расширение скобок - это механизм, с помощью которого можно генерировать произвольные строки. Этот механизм похож на расширение имени файла , но генерируемые имена файлов не должны существовать. Шаблоны, которые должны быть расширены фигурными скобками, принимают форму необязательной преамбулы , за которой следует либо последовательность строк, разделенных запятыми, либо выражение последовательности между парой скобок, за которым следует необязательный postscript, Преамбула имеет префикс к каждой строке, содержащейся в фигурных скобках, а затем к каждой результирующей строке добавляется постскриптум, расширяющийся слева направо.
В вашем случае нет преамбулы или постскриптума, поэтому он просто распространяется на каждый из элементов в списке.
Вы можете увидеть результат, используя echo
:
echo {a=1,b=2,c=3}
Какие выходы:
a=1 b=2 c=3
Если вы используете преамбулу и postscript :
echo before{a=1,b=2,c=3}after
Вы получаете:
beforea=1after beforeb=2after beforec=3after
Обычно я использую это при попытке скопировать или переместить файл в резервную копию:
cp somefile.txt{,.bak}
Что расширяется до:
cp somefile.txt somefile.txt.bak