这些是ANSI转义码,通常由终端客户端解释以漂亮地[彩色]打印输出。
如果服务器配置正确,则只有在使用交互式终端时才能获得这些信息。换句话说,如果您为会话请求了伪终端(如果要使会话自动化,则不应该这样做)。
如果使用了“ shell”通道,那么JSch会自动请求伪终端,因为该通道应该用于实现交互式终端。
如果自动执行远程命令,则最好使用“ exec”通道,如JSch
Exec.java
example所示。另外,您可以通过调用阻止JSch请求伪终端
setPty
。但是我不建议使用“ shell”通道。尽管无论出于何种原因您都需要致电setPty(false)
,但无论如何都应致电,因为这样可以避免许多其他类似的麻烦。实际上,我已经在上一个问题中向您建议了这一点。
其他说明:尽管我了解OP为什么使用
ls命令,但通常来说,应该使用SFTP
API来检索目录列表,而不是执行
ls和解析其输出。解析
ls输出是一种非常不可靠的方法。



