如果我在命令行上运行此命令(在我的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
作为输出偷偷摸摸,而不是被视为参数!
如何解决此问题?
答案 0 :(得分:1)
您的命令使用的是echo
的shell的内置版本,该版本不支持-n
选项。
请尝试/bin/echo
。
答案 1 :(得分:0)
试试这个:
shell_exec("echo\ -n \"hello\" > foo-php.txt");