echo $ PATH字面打印“$ PATH”作为输出

时间:2018-05-30 09:53:21

标签: bash file unix echo

我想浏览一个文本文件,每行包含一个命令。我想读取每一行,执行每个命令,然后将输出保存到文件中。

给我提问的脚本部分是:

echo COMMAND LOG > $dest/command.log

echo ====== >> $dest/command.log

while IFS= read -r v

do
    echo ====== >> $dest/command.log

    echo COMMAND: $v >> $dest/command.log

    echo ======OUTPUT====== >> $dest/command.log

    $v >> $dest/command.log

    echo ====== >> $dest/command.log

done < "$commands"

除了“echo $ PATH”之外的所有内容都能很好地生成:

======

COMMAND: echo $PATH

======OUTPUT======

$PATH

有没有让它正常工作?提前谢谢。

1 个答案:

答案 0 :(得分:1)

这是预期的,因为你是逐行获取文件,你有字符串,而不是变量。 $v是一个"$PATH"字符串,就是全部。

您必须eval您的字符串才能获得关联变量的值:

echo COMMAND: $(eval $v) >> $dest/command.log