nodejs ssh客户端禁用颜色

时间:2015-06-02 16:24:36

标签: node.js ssh xterm

有人知道如何关闭终端中的颜色标签吗?

var conn = require('ssh2').Client();
var onShell = function(err, stream) { 
    ...
    var start = true;
    var data_out = '';
    stream.on('data', function(data) {

          if (/ > $/.test(data)) {
            console.log('test oK');
            if ( start ) {
                stream.write('export\r\n');
                start = false;
            }
            else {
                console.log(data_out);  
                require('fs').writeFileSync('conf.txt', data_out)
                stream.end();
                conn.end();
            }   
          }
          data_out += data;
    });
}

сonn.on('ready', function() {
      console.log('Client :: ready');
      conn.shell(onShell);
}).connect({
      host: '62.117.93.138', // my Mikrotik Router
      port: 22,
});
在conf.txt中的

我看到这样的颜色标签:

  

[m [36m /系统[m [m [36mntp [m [m [36mserver [m [35mset [m]   [m [32 [m [33m = [m [32mes [m [36m / tool [m [m [36mromon [m]   [m [36mport [m [35madd [m [m [32mdisabled [m [33m = [m [32mno]

代替:

/system ntp server
   set enabled=yes
/tool romon port
   add disabled=no

1 个答案:

答案 0 :(得分:0)

Shell会话使用伪TTY,因此远程端认为存在真正的终端。如果可能的话,你最好尝试使用exec(),否则只需使用一个简单的正则表达式从输出中删除所有的转义序列。