2015-06-02 55 views
0

任何人都知道如何关闭终端中的颜色标签?nodejs ssh客户端禁用颜色

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 [36米/系统[M [M [36mntp [M [M [36mserver [M [35mset [米 [ m [32m] [m [32m] [m [36m/tool [m [m [mm] [m [32mno [

代替:

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

回答

0

Shell会话使用伪TTY,所以远端认为有一个真正的终端。如果可能的话,您最好尽量使用exec(),否则只需使用简单的正则表达式从输出中移除所有转义序列即可。

+0

非常感谢,它的工作 – Max