在文件中执行内容(Unix)

时间:2016-05-31 14:17:04

标签: shell variables unix ksh mailx

我的文件包含以下数据

echo Hello "$Name" How are you

在主脚本中,Name被分配给一个字符串。我正在尝试执行文件中的内容,以便可以从主脚本中获取$ Name,如下所示

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

当我尝试按上述方式执行时,$ Name的值没有反映出来。

邮件中的输出如下

Hello "$Name" How are you

如果我做错了,请帮助我

1 个答案:

答案 0 :(得分: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