2016-05-31 54 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