0

ssh経由でvpsに接続する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');
.
.
.

機能せず、最初のコマンドのみを実行します。複数のコマンド トレイルを一緒に実行するにはどうすればよいですか?

4

2 に答える 2

1

;またはで区切って1行に複数のコマンドを書くことが&&できるので、以下のコードに従うことができます

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');
于 2016-09-16T09:40:27.483 に答える
0

関数を呼び出すたびにssh2_exec、新しいシェルが作成され、単一のコマンドが実行されます。

同じシェル内で一連のコマンドを実行する場合は、同じ文字列内でセミコロンまたは改行でコマンドを区切ってみてください。例えば:

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

ssh2_exec($connection, $commands);
于 2016-09-16T09:42:36.393 に答える