我需要与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。添加"&"
等,但是没有运气。
请告诉我要成功运行两个命令应该怎么做。
答案 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}");