Часто в скриптах и терминале встречается такая последовательность: перейти в каталог, выполнить несколько команд, а затем вернуть прежний рабочий каталог через
cd - или сохранить путь в переменную.В Bash есть более простой способ — выполнить команды в подоболочке:
(
cd /etc || exit
ls
)
Все изменения рабочего каталога действуют только внутри круглых скобок.
После завершения блока текущая оболочка остаётся в том же каталоге:
pwd
Этот приём удобен, когда нужно последовательно обработать несколько каталогов:
(
cd build || exit
make
)
(
cd tests || exit
ctest
)
Не требуется сохранять текущий путь, использовать
pushd/popd или помнить, где именно нужно выполнить обратный cd.🔥 Подоболочка изолирует изменения рабочего каталога, переменных и других параметров окружения оболочки, поэтому после завершения блока они не влияют на текущую сессию.
🚪 Linux Ready | #совет
