运行 一些 Linux 命令在 PHP 尾随

Run some Linux command in PHP trail together

我写了一些 php 代码,通过 sshvps 连接到 vps

我知道 ssh2_exec 可以做到,但如果我想要 运行 许多命令,例如:

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

它不起作用,只执行第一个命令。我怎样才能 运行 将多个命令跟踪在一起?

你可以在一行中写多个命令,用;&&分隔所以你可以按照下面的代码

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 都会创建一个新的 shell 并执行单个命令。

如果您想 运行 同一个 shell 中的一系列命令,您可以尝试在同一个字符串中用分号或换行符分隔它们。例如:

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

ssh2_exec($connection, $commands);