我想使用phpseclib库在PHP中更改目录,但是它不起作用。
$ssh = new Net_SSH2('localhost');
if (!$ssh->login('root', 'pass')) {
exit('Failed to connect!');
}
$ssh->exec('cd /home/');
echo $ssh->exec('ls');
为什么这总是只输出根目录文件/文件夹...,而不将目录更改为主目录?
如果您是read the documentation,则说明:
如果在交互式shell上完成,则第一个密码的输出(取决于系统的设置)将不同于第二个密码的输出。但是,以上代码段将产生两条相同的行。
原因是一旦执行了exec()并且删除了通道,您对一次性shell所做的任何“状态更改”都将消失。
您可以通过执行$ ssh-> exec('cd /; pwd')在Linux上解决此问题
因此您需要将两个命令都放在同一exec中:
$ssh->exec('cd /home/; ls');