foboss
@foboss

Как в bash-скрипте подставить в строку, взятую из файла, значение заданной в скрипте переменной?

Есть файл example.txt, в котором находятся строки вида:
# Comment 1
$VAR1/teststring1
# Comment 2
$VAR2/teststring2


Есть bash-скрипт:
#!/bin/bash

VAR1="hello"
VAR2="world"

STRING=`awk '!/^\ *#/&&(length > 0), ORS=" "' example.txt`

echo $STRING


Разумеется, при выводе переменные из файла печатаются как есть:
$VAR1/teststring1 $VAR2/teststring2

Как можно заставить скрипт подставлять в эти переменные значения выше? Есть ли простой и очевидный способ? Городить для этого отдельную regexp-замену не кажется разумным.
  • Вопрос задан
  • 5446 просмотров
Решения вопроса 1
xotkot
@xotkot
хорошо есть и хорошо весьма
последнюю строку замени на:
eval "echo $STRING"
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
RicoX
@RicoX
Ушел на http://ru.stackoverflow.com/
Если влоб то самый тупой вариант который приходит в голову, заменить последнюю строку на
echo $STRING | sed -e 's/\$VAR1/'$VAR1'/g' -e 's/\$VAR2/'$VAR2'/g'
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы