我正在使用Java中的ProcessBuilder类启动与Cygwin捆绑的SSH实用程序。一切正常。我通过SSH连接到Linux服务器,可以运行命令并读取输出。
但是,无论何时返回输出,它只会在登录服务器并运行命令后发生,例如目录列表ls
,返回如下内容:
InputStream: root@myserver:/scripts/common# ls
InputStream: [00m[00mA1-4.yaml[00m [01;32mscip-1.2.0.linux.x86_64.gnu.opt.qso[00m
InputStream: [00madditional_files.txt[00m [01;32mscip-1.2.0.linux.x86_64.gnu.opt.spx[00m
据我所知,它只发生在文件列表命令中。例如,当我运行其他命令(如时间等)时,它会显示正常输出。
您能否建议将这些随机字符附加到文件名是什么?
我甚至尝试过使用UTF8编码,但没有任何改变。当我使用命令行直接登录时,我看不到那些结果。但是,cmdline以彩色值显示文件名。是否添加了一些非ASCII的附加信息?
答案 0 :(得分:1)
使用命令ls --color=none
解决了这个问题。
这是因为默认情况下ls命令返回附加了不同颜色代码值的文件名。 This link gives more information。
下图描述了ls
和ls --color=none
: