Выполнить некоторые команды Linux в PHP след вместе

Я написал некоторый PHP-код, который подключен к VPS через SSH

я знаю ssh2_exec могу сделать это, но если я хочу запустить много команд, как:

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

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

2 ответа

Решение

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

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');

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

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

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

ssh2_exec($connection, $commands);
Другие вопросы по тегам