我的文件包含以下数据
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
如果我做错了,请帮助我
答案 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