Выполнить некоторые команды 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);