Доброго времени суток!Имеется сценарий вида:
#!/bin/sh -
STR="Hello, $i"
value='test'
i=$value
echo "Now \$i is $i"
echo $STRвыполнение даёт результат:
Now $i is test
Hello,желаемый результат
Now $i is test
Hello, testт.е. задача - подставить текущее значение $i в $STR, раскрыть её там, и только после этого передать всё вместе аргументом echo(), как было бы, если привести сценарий к виду
#!/bin/sh -
value='test'
i=$value
echo "Now \$i is $i"
STR="Hello, $i"
echo $STRвыполнение которого даёт
Now $i is test
Hello, testЭни хэлп?
eval должен помочь тут
> eval должен помочь тутНа eval() я первым делом подумал, перепробовал массу разных вариантов и комбинаций, но пока не помог.
Нельзя ли по-подробней на этом примере, т.к. у меня есть подозрение что я просто неправильно понимаю как работает этот оператор.
>> eval должен помочь тут[c0der@rock ~]$ sh o.sh 20:52
Now $i is test
Hello, test
[c0der@rock ~]$ cat o.sh 20:52
#!/bin/sh -
STR='echo "Hello, $i"'
value='test'
i=$value
echo "Now \$i is $i"
eval $STR
спасибо, теперь разобрался!