2016-09-16 6 views
0

Я написал несколько PHP кода, который подключен к VPS через SSHВыполнить некоторые команды Linux в PHP следе вместе

Я знаю ssh2_exec может это сделать, но если я хочу работать много команды, как:

ssh2_exec($connection, 'cd /home/ubuntu/'); 
ssh2_exec($connection, 'mkdir folder'); 
ssh2_exec($connection, 'cd folder'); 
ssh2_exec($connection, 'touch test.txt'); 
. 
. 
. 

Это не работает и выполняет только первую команду. как я могу запустить несколько команд-трейлов вместе?

ответ

0

Каждый раз, когда вы вызываете функцию ssh2_exec вы создаете новый shell и выполнение одной команды.

Если вы хотите запустить серию команд внутри одной и той же оболочки, вы можете попробовать их разделить с точками с запятой или новыми символами в одной строке. Например:

$commands = <<<'EOD' 
cd /home/ubuntu 
mkdir folder 
cd folder 
touch test.txt 
EOD; 

ssh2_exec($connection, $commands); 
0

вы можете написать несколько команду на одной строке, разделенных ; или && Таким образом, вы можете следовать ниже код

ssh2_exec($connection, 'cd /home/ubuntu/; mkdir folder; cd folder; touch test.txt'); 

ИЛИ

ssh2_exec($connection, 'cd /home/ubuntu/ && mkdir folder && cd folder &&touch test.txt');