如何在php中使用exec运行多个命令

时间:2019-04-14 18:35:13

标签: php bash

我需要与exec依次运行2条命令,但它不会运行。

代码

$command1 = 'cd '.$destination.''; //open destination folder (e.g. public_html)
$command2 = 'git clone '.$repos->repository.''; //make clone

$sshConnection1 = exec($command1); // run first command(open folder)
$sshConnection = exec($command2); //run second command (make clone)

在提出此问题之前,我先阅读了一些建议的主题,例如this one。添加"&"等,但是没有运气。

请告诉我要成功运行两个命令应该怎么做。

2 个答案:

答案 0 :(得分:1)

似乎在某些时候,PHP的exec分叉了,所以cd不会影响父进程。

php > echo getcwd();
/home/nchambers
php > exec("cd ..");
php > echo getcwd();
/home/nchambers
php > echo exec("pwd");
/home/nchambers
php > exec("cd ..");
php > echo exec("pwd");
/home/nchambers
php >

此外,git clone可以将目标目录写入其中。我不能说为什么您的命令会在没有更多信息的情况下失败,而只是您尝试运行的内容出现一些初始问题。

答案 1 :(得分:1)

只需将两个命令与exec()组合在一起,就可以将两个命令放入一个&&调用中:

exec("cd $destination && git clone {$repos->repository}");