【发布时间】:2013-03-26 21:20:26
【问题描述】:
脚本代码:
echo "Command?"
read command
例如 command = echo "Hello world"
$command > text.txt
cat text.txt
输出是“Hello world”(带引号),但我需要与输出相同的输出 给出简单的
echo "Hello world" > text.txt
即你好世界。我怎么才能得到它? 请记住,$command 可以采用任何值,必须在当前 bash 中执行,并且输出保存在文件中。
【问题讨论】:
-
"使用更多报价!"它们至关重要。另外,了解 ' 和 " 和 ` 之间的区别。参见 mywiki.wooledge.org/Quotes 和 wiki.bash-hackers.org/syntax/words
-
我不确定你想做什么。是
echo "$command" > text.txt吗? -
为了更安全:你不能建议一个可用命令的列表,并让用户输入该命令的编号吗?这样你就不会接受“一切”(如果接受一切,聪明/邪恶的用户几乎可以用你的脚本做任何事情。清理所有可能的输入非常非常困难)