У меня есть функция bash Unix, которая выполняет скрипт, который анализирует пользовательские переменные среды. Я хочу, чтобы не экспортировать соответствующие переменные в bash и вместо этого устанавливать их только для скрипта, как часть команды выполнения.Настройка переменных среды для скрипта в локальной переменной функции bash
Если я задаю переменные непосредственно в команде - например, VARNAME=VARVAL script_name
- он работает хорошо. Однако, поскольку я хочу установить несколько переменных на основе разных условий, я хочу использовать локальную функциональную переменную для хранения параметров переменной среды, а затем использовать эту переменную в команде выполнения сценария. У меня есть локальная переменная «vars», которая в конечном счете установлена, например, на VARNAME=VAR
, но если я попытаюсь запустить ${vars} script_name
из моей функции bash, я получаю «команда не найдена» ошибка для назначения переменной $ vars - т.е. содержимое $ vars интерпретируется как команда, а не как назначение переменных среды.
Я пробовал различные варианты синтаксиса команды, но до сих пор безрезультатно. В настоящее время мне нужно экспортировать соответствующие переменные в функцию, прежде чем вызывать скрипт, а затем отключить/сбросить их до предыдущих значений, но на самом деле это не то решение, на которое я надеялся.
Любая помощь была бы принята с благодарностью.
Спасибо, Шарон
благодарим вас за быстрый ответ. Это сработало :-)! (Я действительно пытался использовать eval в какой-то момент, но я случайно использовал неправильный синтаксис.) – Sharon
['eval' is evil] (http://mywiki.wooledge.org/BashFAQ/048) – l0b0