1

如何获取执行命令的返回码:

<?php
include('Net/SSH2.php');

$ssh = new Net_SSH2('www.domain.tld');
if (!$ssh->login('username', 'password')) {
    exit('Login Failed');
}

echo $ssh->exec('cat /tmp/file_tmp');
//verify the return code
echo $ssh->exec('echo $?');

?>

echo $?(Linux) 和echo %errorlevel%(Win) 不起作用。

有任何想法吗??

4

2 回答 2

4

$ssh->getExitStatus()你想做的事吗?

于 2013-08-16T21:04:24.433 回答
3

找到一个选项(一种解决方法)。 PHP ssh2_exec 通道退出状态?

下面的代码对我有用,符合我的目的:

$command .= ';echo "[return_code:$?]"';
$output = $ssh->exec($command);
preg_match( '/\[return_code:(.*?)\]/', $output, $match );
$return_code = $match[1];
echo "\r\n". $output;
echo "\r\n".$return_code;

感谢大家的投入。欣赏它!

于 2013-08-17T07:09:26.187 回答