Установка переменной среды из команды, хранящейся в массивеLinux

Ответить
Anonymous
 Установка переменной среды из команды, хранящейся в массиве

Сообщение Anonymous »

У меня есть список команд, которые я динамически считываю в своем скрипте, каждая команда хранится в строке. Некоторые строки содержат команды, подобные следующей

Код: Выделить всё

line="env_var=\"xxx\" myexe -flag1 -flag2"
Я пытаюсь запустить все строки (включая эти) из моего скрипта.
Затем я делаю это для каждой строки
р>

Код: Выделить всё

cmd=($line)

Код: Выделить всё

"${cmd[@]}"
Однако это не помогает

Код: Выделить всё

env_var="xxx": command not found
Я подозреваю, что проблема в том, что в моем объявлении массива часть env_var="xxx" рассматривается как одно слово, и мне каким-то образом нужно поместить синтаксическое равенства и кавычки, но я, кажется, не могу этого сделать.
Любая помощь очень ценится.
Спасибо!
p.s. Я попробовал eval $line, и это работает, но хотелось бы этого избежать.

Подробнее здесь: https://stackoverflow.com/questions/785 ... d-in-array
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Linux»