Подстановка команды
$(команда)
выполняет команду и подставляет её вывод как строку.
Удобно использовать для передачи вывода как аргумент другой команды.
Пример
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