【问题标题】:Executing the content in a file (Unix)执行文件中的内容(Unix)
【发布时间】:2016-09-29 14:47:12
【问题描述】:

我有一个包含以下数据的文件

echo Hello "$Name" How are you

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

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

当我尝试执行上述操作时,$Name 的值没有反映。

邮件中的输出如下

Hello "$Name" How are you

如果我做错了什么请帮助我

【问题讨论】:

    标签: shell variables unix ksh mailx


    【解决方案1】:

    如果您绝对信任ABC.txt中没有恶意命令,请执行以下操作:

    Name=TEST
    source abc.txt | mailx
    

    否则,要更替换值更安全,请执行以下操作:

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

    【讨论】:

      猜你喜欢
      • 2018-08-12
      • 2015-06-03
      • 2019-02-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-08-01
      • 1970-01-01
      • 2014-11-30
      相关资源
      最近更新 更多