2016-09-16 1 views
0

j'ai écrit un code php qui est connecté à vps via sshExécutez une commande Linux en piste PHP ensemble

Je sais que ssh2_exec peut le faire, mais si je veux exécuter plusieurs commandes comme:

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

Il ne fonctionne pas et ne fait que la première commande. Comment puis-je exécuter plusieurs pistes de commande ensemble?

Répondre

0

Chaque fois que vous appelez la fonction ssh2_exec vous créez une nouvelle shell et l'exécution d'une seule commande.

Si vous souhaitez exécuter une série de commandes dans le même shell, vous pouvez essayer de les séparer par des points-virgules ou des retours-chariot dans la même chaîne. Par exemple:

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

ssh2_exec($connection, $commands); 
0

vous pouvez écrire commande multiple sur une ligne séparée par ; ou && Vous pouvez suivre ci-dessous le code

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

OU

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