как читать из файла и превращать его содержимое в несколько переменных в bash - PullRequest
0 голосов
/ 26 февраля 2019

У меня есть файл, который имеет следующий формат:
1 a
2 b
3 c
Я хочу просмотреть его, преобразовать второй аргумент в переменную и сохранить первыйаргумент в этой переменной, для каждой строки.Поэтому в этом случае создайте переменную 'a' и сохраните в ней 1, создайте b и сохраните в ней 2 и так далее.Есть ли простой способ сделать это?

Ответы [ 2 ]

0 голосов
/ 26 февраля 2019

Используйте nameref для выполнения косвенного назначения.

while read -r value name; do
    declare -n var=name
     var=$value
done
declare +n var  # optional; makes var stop being a nameref

До bash 4.3 вы могли использовать declare более широко (но немного более хрупко).

while read -r value name; do
    declare "$name=$var"
done < file
0 голосов
/ 26 февраля 2019

Вы можете попробовать что-то вроде:

while read line ; do
 Var=$(echo $line |awk '{print $2}')
 Value=$(echo $line |awk '{print $1}')
 export $Var=$Value
done < file

echo $a
echo $b
echo $c

Который производит:

> ./script.sh
1
2
3
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...