сохранять среду при выполнении в скрипте

сохранять среду при выполнении в скрипте

У меня есть скрипт bash, который должен выполнять ряд команд. Команды работают нормально, если их вводить в терминале, но когда я пытаюсь выполнить их из скрипта, они не работают, поэтому я предполагаю, что это что-то, специфичное для среды.

В сценарии у меня есть

exec "$cmd"

и это не работает, хотя если я копирую содержимое $cmd и вставляю в терминал, то все работает нормально.

Как сохранить текущую среду при запуске скрипта? Или у вас есть другие идеи, что это может быть?

решение1

решение2

Введите set -o allexportв верхней части вашего скрипта bash. Это должно автоматически экспортировать все переменные, которые вы определяете. (Обратите внимание, что это считается плохим стилем; лучше было бы просто экспортировать нужные переменные).

решение3

Если все команды должны быть запущены из одного каталога, вы можете использовать

cd /d $Location

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

cd — это команда смены каталога. /d — этот параметр позволяет cd одновременно сменить и диск, и каталог.

если вы хотите, чтобы команда запускалась, скажем, из D:\scripts без /d, вам нужно будет

D:
cd \scripts

но с помощью приведенной выше команды вы можете сделать это в одну строку

cd /d D:\scripts

-Редактировать еще раз-

Прошу прощения, там четко написано BASH, но по какой-то причине я прочитал это как BATCH. В будущем буду внимательнее.

Связанный контент