LINUX.ORG.RU

Работа с параметрами из файла

 ,


0

3

Есть строка (фактически это файл с кучей данных в строку):

var1=value1; var2=value2; var3=value3; va…

Можно ли как-то очень просто распарсить эту строку сразу в переменные bash, к которым уже можно будет из bash-а обращаться: или так $var1, $var2 или как к словарю $vars[‘var1’], $vars[‘var2’]. При этом если добавится новая переменная в строку, не нужно будет изменять код для её добавления, да и сам код такого парсинга должен быть минимальным.



Последнее исправление: hobbit (всего исправлений: 1)

Ответ на: комментарий от slovazap

«А слона то я и не заметил» учитывая, что файл с данными заполняется без моего контроля, а тут получается в нём любой код может быть, который будет выполнен. Тогда не подходит, нужно через read его вычитывать, но как это сделать лаконично, не могу сообразить.

Viper
() автор топика
Ответ на: комментарий от slovazap

source не выполняет скрипт :) а только интерпретирует.
т.е. из файла в текущее пространство исполнения вставляются переменные и определенные в скрипте функции.

pfg ★★★★★
()
Ответ на: комментарий от pfg

source не выполняет скрипт :) а только интерпретирует.

O RLY?

[nameless@home-desktop:~]$ cat /tmp/totally-trustworthy-script.bash
FOO=bar
echo 'not running `rm -rf ~`, I swear!'

[nameless@home-desktop:~]$ source /tmp/totally-trustworthy-script.bash
not running `rm -rf ~`, I swear!

help source:

Read and execute commands from FILENAME in the current shell.  The
entries in $PATH are used to find the directory containing FILENAME.
If any ARGUMENTS are supplied, they become the positional parameters
when FILENAME is executed.

Exit Status:
Returns the status of the last command executed in FILENAME; fails if
FILENAME cannot be read.
theNamelessOne ★★★★★
()
Ответ на: комментарий от pfg

source не выполняет скрипт :) а только интерпретирует

Осталось только пояснить, в чём разница между этими двумя понятиями, и вообще зашибись будет.

т.е. из файла в текущее пространство исполнения вставляются переменные и определенные в скрипте функции.

🤦‍♂️

intelfx ★★★★★
()