У меня есть список имен файлов с переменными среды в них. Я хотел бы прочитать файл построчно, а затем установить переменную для чтения в строке, но перевести переменную среды в соответствующую переменную среды. Вот мой скрипт на данный момент:
#!/bin/ksh
. /test/currentEnv.sh
while read line
do
echo $line
done < $1
если мой исходный файл:
foo1$ENVVAR1.csv
foo2$ENVVAR2.csv
foo3$ENVVAR3.csv
и мои переменные среды в currentEnv.sh
$ENVVAR1=hello; export ENVVAR1
$ENVVAR2=world; export ENVVAR2
$ENVVAR3=test; export ENVVAR3
Я хотел бы, чтобы результаты сценария были
foo1hello.csv
foo2world.csv
foo3test.csv
в настоящее время он просто выгружает исходный файл:
foo1$ENVVAR1.csv
foo2$ENVVAR2.csv
foo3$ENVVAR3.csv
Редактировать
Мне удалось разрешить большинство моих файлов, используя: #!/bin/ksh
. /test/currentEnv.sh
while read line
do
eval echo $line
done < $1
однако некоторые из моих переменных находятся в середине строки, например:
foo3$ENVVAR3_bar.csv
кажется, что он ищет переменную env $ENVVAR3_bar и не находит ее. Мне нужно это для вывода:
foo3test_bar.csv