2015-06-02 56 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