system("echo * > toto") 返回错误

system("echo * > toto") 返回错误

当我测试此命令时:system("echo * > toto") (文件 toto 存在)

返回此错误:bash: syntax error near unexpected token“/bin/echo x”'`

我不明白为什么。提前感谢您的建议。

答案1

这也许能让我们了解正在发生的事情:

$ echo * | tr ' ' '\n' | sort >toto_a

$ ls -d * | tr ' ' '\n' | sort >toto_b
ls:无法访问 VirtualBox:没有此文件或目录
ls:无法访问虚拟机:没有此文件或目录

$ diff-u0 toto_a toto_b
--- toto_a 2014-06-30 18:50:41.939160184 +0200
+++toto_b 2014-06-30 18:50:45.571160103 +0200
@@ -34,2 +33,0 @@
—VirtualBox
-虚拟机

...现在假设“system()”启动一个 bash 会话echo * >toto

为了获得更可预测的结果,人们可能会使用system("bash -c 'echo * > toto')并添加绝对路径toto

相关内容