php - 将多行linux发送到PHP exec()

标签 php linux unix command-line

我正在尝试使用 exec() 处理多个 UNIX 调用,但第一个命令似乎对第二个命令没有影响:

exec('cd ../my/new/directory/');
echo exec('pwd')' //directory the PHP is in. not the new directory/

这是怎么回事?

最佳答案

当您调用 PHP 的 exec() 时,PHP 将fork一个新进程,并且 exec(Unix 系统调用)cd 命令。然后,父进程 (PHP) 将等待子进程完成。

因此,cd仅在子进程中生效cd 返回后,您的父进程 (PHP) 处于与之前相同的状态。

关于php - 将多行linux发送到PHP exec(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20205182/

相关文章:

linux - 如何打印由 sed/awk 更改的行号

php - 将消息从网络服务器发送到我智能手机上的移动聊天应用程序(如 WhatsApp、Viber 或 Kik)?

php - 无法连接数据库?

c++ - 线程处理 C++ linux OS

php - 如何判断 ffmpeg 是否出错?

perl - Unix 如何读取带有两个连续斜杠的路径名? (例如/home/user//mystuff)

php - 如何将序列化数据插入数据库?

php - 如何判断ob_start();已经被调用

linux - 如何在 linux 中访问 hadoop web UI?

linux - 有人可以帮我将每小时和每天的日志文件分成一个单独的文件吗?