0

如果我在命令行上运行这个命令(在我的 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作为输出潜入,而不是被视为参数!

我该如何解决这个问题?

4

2 回答 2

1

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

试试/bin/echo吧。

于 2012-07-05T10:55:04.523 回答
0

试试这个:

shell_exec("echo\ -n \"hello\" > foo-php.txt");
于 2012-07-05T10:52:52.450 回答