当我测试此命令时: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
。