一个奇怪的,但可能很简单的shell_exec问题

时间:2012-07-05 10:50:07

标签: php

如果我在命令行上运行此命令(在我的Mac OS X上):

echo -n "hello" > foo-cmd.txt

我得到了预期的结果,即包含“foo-cmd.txt”的文件hello,但最后没有任何换行符。

但是,如果我运行这个PHP代码:

<?php
shell_exec("echo -n \"hello\" > foo-php.txt");
?>

我收到一个文件foo-php.txt,其中包含文字“-n hello”,后跟换行符!换句话说,参数-n作为输出偷偷摸摸,而不是被视为参数!

如何解决此问题?

2 个答案:

答案 0 :(得分:1)

您的命令使用的是echo的shell的内置版本,该版本不支持-n选项。

请尝试/bin/echo

答案 1 :(得分:0)

试试这个:

shell_exec("echo\ -n \"hello\" > foo-php.txt");