Подстановка команды

$(команда) выполняет команду и подставляет её вывод как строку.

Удобно использовать для передачи вывода как аргумент другой команды.

Пример

echo $(ls)
## вывод
2022-2023 Downloads re3 run_presentation_console

кавычки влияют и здесь, аналогично подстановке переменных.

"" не влияют на подстановку $:

echo "$(ls)"
## вывод
2021-2022
Downloads
re3
run_presentation_console

'' экранируют $ и никакой подстановки не происходит:

echo ' $(ls)'
## вывод
 $(ls)

Арифметическая подстановка

$((арифметическое выражение)) вычисляет арифметическое выражение.

Примеры

echo $((1 + 2))
## вывод
3
echo $((RANDOM % 10))
## вывод (?)
0

💡 Подсказка: В арифметических выражениях shell переменные можно использовать без предшествующего символа $. Это упрощает запись и делает код более читаемым.

Что будет, если передать переменную, в которой лежит не число?

Тильда

Знак ~ раскрывается shell в домашнюю директорию пользователя, от чьего имени исполняется команда.

Например, если мы запустим от рута такою команду:

echo ~

то получим такой вывод:

## вывод
/root