0

脚本代码:

    echo "Command?"
    read command

例如 command = echo "Hello world"

    $command > text.txt
    cat text.txt

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

    echo "Hello world" > text.txt

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

4

2 回答 2

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

于 2013-03-26T21:37:06.303 回答
0

您可以使用

eval "$command" > text.txt

但要小心——如果有人进入rm -rf /怎么办?

于 2013-03-26T21:25:02.477 回答