2014-11-21 2 views
3

Скажем, у меня есть переменная:Как выполнить команду string в переменной?

T=6 

И еще одна переменная, называемая линия ", что я прочитал из файла и содержит следующую строку/текст:

echo "$T" 

Теперь я хочу, чтобы выполнить команду команда написана на «линии», так что я получаю:

6 

так же, как то, что я получу, если будет просто ввести команду:

echo "$T" 

И получите:

6 

Я пытался использовать:

$line 

Но я получил:

"$T" 

Заранее спасибо за помощь.

+0

Ваша переменная строка должна быть строка = 'Эхо "$ T"'. Затем вы можете использовать 'echo $ line'. – iqstatic

ответ

2

eval является то, что вы ищете

Для примера рассмотрим

$ T=6 
$ line='echo "$T"' 
$ eval $line 
6 

От человека страниц

eval [arg ...] 
       The args are read and concatenated together into a single command. This command is then read and executed by the shell, and its exit 
       status is returned as the value of eval. If there are no args, or only null arguments, eval returns 0. 
+1

Ob-link [Eval command and security issues] (http://mywiki.wooledge.org/BashFAQ/048) '" eval "является распространенным неправильным написанием« зла ». –

Смежные вопросы