我想在执行第一个命令之后执行第二个命令,但它对我不起作用.这是我的代码
<?php
include('Net/SSH2.php');
$owed = $_POST["value"];
$server = "127.0.0.1";
$username = "xxx";
$password = "xxx";
$command1 = "cd /var/www/ww && node bot.js";
$ssh = new Net_SSH2($server);
if (!$ssh->login($username, $password)) {
exit('Login Failed');
}
echo $ssh->exec($command1);这一切都很好,一直工作到这一步,但是..。问题是在执行节点之后,请求值来执行任务,在脚本的第一个索引上获得值,但是我不知道如何在第一个命令之后执行它。

//编辑
我需要传递$_POST"value“作为第二个命令。
发布于 2016-07-09 18:43:51
正如文档所说,您可以在本例中使用write
5.1.4.read() / write() vs. exec() write()将输入(例如命令)发送到服务器。通常,操作系统在按下Enter键之前不会处理命令,因此要模仿这一点,您需要发送一个"\n“、"\r”或“\r”,具体取决于您连接到的服务器所使用的操作系统。注意,尽管输入很可能是一个命令,但它并不一定是一个命令。 您发送的内容将被任何期望用户输入的文本解析。因此,如果输入" passwd \n“,输入(直到输入"\n”)将由passwd解析为新密码或现有密码,而不是作为shell运行的命令。
,所以你可能想要这样的东西:
<?php
include('Net/SSH2.php');
$owed = $_POST["value"];
$server = "127.0.0.1";
$username = "xxx";
$password = "xxx";
$ssh = new Net_SSH2($server);
if (!$ssh->login($username, $password)) {
exit('Login Failed');
}
echo $ssh->exec('cd /var/www/www');
echo $ssh->exec('node bot.js');
echo $ssh->write($owed);https://stackoverflow.com/questions/38285034
复制相似问题