echo将变量写入带有引号的文件

时间:2013-03-26 21:20:26

标签: bash input echo

脚本代码:

    echo "Command?"
    read command

例如command = echo“Hello world”

    $command > text.txt
    cat text.txt

输出是“Hello world”(带逗号的引号),但我需要输出相同的输出 给出了简单的

    echo "Hello world" > text.txt

即。你好,世界。我怎么才能得到它? 请记住,$ command可以取任何值,必须在当前bash中执行,输出保存在文件中。

2 个答案:

答案 0 :(得分:0)

您可以使用

eval "$command" > text.txt

但要小心 - 如果有人输入rm -rf /会怎么样?

答案 1 :(得分:0)

如果您需要eval命令,然后保存STDOUTSTDERR

STDOUT

eval "$command" > text.txt

对于STDERR

eval "$command" 2> text.txt

但是,请注意,eval是'邪恶'的常见拼写错误。如果eval是答案,那么你肯定是在问错误的问题。见http://mywiki.wooledge.org/BashFAQ/048

最后但并非最不重要的是,“使用更多引用!”它们至关重要。另外,了解'和'与`之间的区别。请参阅mywiki.wooledge.org/Quotes和wiki.bash-hackers.org/syntax/words