Как Bash может выполнить команду в другом контексте каталога?
=============================================================

У меня есть общая команда, которая вызывается из очень определенных каталогов. Для этой программы есть только один исполняемый файл, расположенный в / bin, и текущий рабочий каталог очень важен для его правильной работы. Сценарий влияет на файлы, которые находятся внутри каталога, в котором он запущен.

Теперь у меня также есть собственный сценарий оболочки, который делает некоторые вещи в одном каталоге, но мне нужно вызвать эту команду, упомянутую выше, как если бы она была в другом каталоге.

Как вы делаете это в сценарии оболочки?

 Вы можете использовать`cd` встроенный или`pushd` а также`popd` встроенные для этой цели. Например

 Вы используете встроенные функции, как и любую другую команду, и можете изменять контекст каталога столько раз, сколько захотите в скрипте.



Если вы хотите вернуться в свой текущий рабочий каталог: Мы устанавливаем переменную`current_dir` равно вашему`pwd` после этого мы идем к`cd` туда, где нужно запустить команду тогда мы запускаем команду тогда мы идем к`cd` назад к нашей переменной`current_dir`

 Используйте`cd` в скорлупе; сокращенный способ использовать этот вид подоболочки - круглые скобки.

 Тем не менее, если ваша команда имеет среду, которая ей требуется, она должна действительно гарантировать, что сама среда вместо того, чтобы возлагать ответственность на все, что может ее использовать (если это не внутренняя команда, используемая в очень специфических обстоятельствах в контексте четко определенная большая система, такая, что любой вызывающий абонент уже должен обеспечить среду, в которой он нуждается). Обычно это какая-то оболочка сценария оболочки.