脚本代码:
echo "Command?"
read command
例如command = echo“Hello world”
$command > text.txt
cat text.txt
输出是“Hello world”(带逗号的引号),但我需要输出相同的输出 给出了简单的
echo "Hello world" > text.txt
即。你好,世界。我怎么才能得到它? 请记住,$ command可以取任何值,必须在当前bash中执行,输出保存在文件中。
答案 0 :(得分:0)
您可以使用
eval "$command" > text.txt
但要小心 - 如果有人输入rm -rf /
会怎么样?
答案 1 :(得分:0)
如果您需要eval
命令,然后保存STDOUT
或STDERR
:
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