Ответ 1
Эта подстановка отлично работает в Bash 4.2.8 (и выглядит хорошо в соответствии с документацией).
Мое лучшее предположение, что вы на самом деле не используете Bash - как вы вызываете script? Если вы выполняете sh script.sh
, вы можете запустить его с помощью Dash или чего-то подобного (и Dash действительно дает ошибку замены в строке 3). Попробуйте явно запустить его с помощью Bash (bash script.sh
).
Если окажется, что вы на самом деле используете Dash, есть полезная информация о различиях и о том, как вернуться к использованию Bash (если вы хотите) здесь: https://wiki.ubuntu.com/DashAsBinSh