求助:php运行linux命令行的问题

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了求助:php运行linux命令行的问题相关的知识,希望对你有一定的参考价值。

php下我现在需要执行linux命令行,如我先要cd到一个目录下,比如cd /usr/local然后再在该目录下执行一个echo "string";的一个操作。我现在用的system函数,我用system("cd /usr/local/")然后再执行system("echo 'string'")发现不能得到预期的运行的结果;
后来我尝试了下两个命令行的连接,比如 system("cd /usr/local/");然后再执行system("ls", $callback)发现得到的是当前的目录底下的文件,而不是 "/usr/local/"底下的,这个问题该如何解决?
我刚用了linux的系统调用,先用chdir(),改变一下目录,然后再执行system("string");就可以解决了,虽然有点麻烦,不过还是可以实现,谢谢两位了。

cd是没用的,因为多个system语句执行的时候,PHP是分别调用shell,每次的环境都要初始化,解决的方法是PHP生成一个shell文件,然后执行它,例如:
file_put_countents(\'tmp.sh\',"cd /usr/local
echo \'string\'
ls $callback");
system(\'tmp.sh\');

注意:多条命令可以直接使用换行。
参考技术A 使用 exec 这个方法试试

以上是关于求助:php运行linux命令行的问题的主要内容,如果未能解决你的问题,请参考以下文章

求助:LINUX常用SHELL命令

在linux下,为php增加mbstring扩展,求助!

Linux systemd 自启动脚本无法正常运行(求助分析方向)

linux 安装JDK后,所有命失效,求大神指导。

在Linux上讲Java命令行的作为服务运行

Linux下解析命令行的标准形参(getopt)