Bash:
Интерполяция строки
Как:
Строки Bash хорошо работают с переменными. Вставьте переменную в строку с помощью фигурных скобок, и все готово.
name="World"
greeting="Привет, ${name}!"
echo $greeting
Вывод:
Привет, World!
Bash говорит, “Будь гибким”. Измените name
, и приветствие изменится следом.
name="Bash Pros"
greeting="Привет, ${name}!"
echo $greeting
Вывод:
Привет, Bash Pros!
Подробнее
Раньше программисты склеивали строки с помощью конкатенации. Это было неряшливо. Интерполяция строк пришла как супергерой для более чистого и читаемого кода.
Bash, в отличие от некоторых других языков, не придирается — нужен только доллар и фигурные скобки. В других языках для этого используют особый синтаксис или функции. В Bash все дело в фигурных скобках и иногда в символе экранирования, если вы хотите чего-то фантазийного.
Некоторые альтернативы? Конечно, вы можете использовать конкатенацию или echo
без скобок, если не делаете что-то сложное. Но зачем останавливаться на достигнутом?
Что касается реализации, когда Bash видит ${}
, он берет значение переменной и подставляет его без лишних вопросов. Это гарантирует, что то, что вы видите (в коде), это то, что вы получите (в выводе).
Смотрите также
Для дополнительной информации о магии строк:
- Манипуляции со строками в Bash: https://www.gnu.org/software/bash/manual/html_node/Shell-Parameter-Expansion.html
- Руководство по продвинутому скриптингу в Bash: https://tldp.org/LDP/abs/html/
- Stack Overflow (практические примеры для реальных проблем): https://stackoverflow.com/questions/tagged/bash