2016-05-31 5 views
0

У меня есть файл, который имеет следующие данныеВыполнение содержимого в файле (Unix)

echo Hello "$Name" How are you 

И в мастер-скрипт Имя присваивается строка. Я пытаюсь выполнить содержимое в файле, так что $ Имя может быть взято из главного сценария следующим образом

Name=TEST 
a=$(cat abc.txt) 
b=`$a` 
echo b | mailx 

, когда я пытаюсь сделать, как указано выше значения для $ Name не отражает.

Выход следующим по почте

Hello "$Name" How are you 

Пожалуйста, помогите мне, если я делаю что-то неправильно

ответ

2

Если вы абсолютно уверены, что нет никаких вредоносных команд в abc.txt, сделайте следующее:

Name=TEST 
source abc.txt | mailx 

в противном случае, подставлять значения немного более безопасно, сделать это:

export Name # and any other variables 
perl -pe 's/\$(\w+)/$ENV{$1}/g' abc.txt | mailx