node.js child_process.spawn 输出到控制台奇数格式
node.js child_process.spawn output to console odd format
我正在尝试编写一个小包装器以通过 nodejs 执行 shell 命令并将命令的输出打印到控制台。到目前为止,我已经差不多完成了,但是控制台中输出的格式是......尴尬而且我不知道为什么。 :(
#!/usr/bin/env node
var fs = require('fs');
var spawn = require('child_process').spawn;
MyWrapper( "ls", ["-l"], function(text) {
console.log(text)
fs.appendFileSync('testlog.txt', text)
});
function MyWrapper(cmd, args, callBack) {
var child = spawn(cmd, args)
var response = ""
child.stdout.on('data', function (buffer) { response += buffer.toString() });
child.stdout.on('end', function() { callBack (response) });
}
testlog.txt 完全没问题:
total 5
drwxrwxr-x+ 1 user user 114 Feb 26 23:09 test.git
-rw-rw-r--+ 1 user user 7524 Feb 27 12:45 testlog.txt
-rw-rw-r--+ 1 user user 524 Feb 27 01:17 test.txt
但是控制台输出是:
total 5
drwxrwxr-x+ 1 mmay mmay 114 Feb 26 23:09 test.git
-rw-rw-r--+ 1 git git 7750 Feb 27 12:47 testlog.txt
-rw-rw-r--+ 1 git git 524 Feb 27 01:17 test.txt
而且我不知道如何修复它...任何提示都很棒 :)
呃呃,犯了个愚蠢的错误
登录时通过 命令 在 authorized_keys 中调用了脚本。还有 no-pty 标志。
我正在尝试编写一个小包装器以通过 nodejs 执行 shell 命令并将命令的输出打印到控制台。到目前为止,我已经差不多完成了,但是控制台中输出的格式是......尴尬而且我不知道为什么。 :(
#!/usr/bin/env node
var fs = require('fs');
var spawn = require('child_process').spawn;
MyWrapper( "ls", ["-l"], function(text) {
console.log(text)
fs.appendFileSync('testlog.txt', text)
});
function MyWrapper(cmd, args, callBack) {
var child = spawn(cmd, args)
var response = ""
child.stdout.on('data', function (buffer) { response += buffer.toString() });
child.stdout.on('end', function() { callBack (response) });
}
testlog.txt 完全没问题:
total 5
drwxrwxr-x+ 1 user user 114 Feb 26 23:09 test.git
-rw-rw-r--+ 1 user user 7524 Feb 27 12:45 testlog.txt
-rw-rw-r--+ 1 user user 524 Feb 27 01:17 test.txt
但是控制台输出是:
total 5
drwxrwxr-x+ 1 mmay mmay 114 Feb 26 23:09 test.git
-rw-rw-r--+ 1 git git 7750 Feb 27 12:47 testlog.txt
-rw-rw-r--+ 1 git git 524 Feb 27 01:17 test.txt
而且我不知道如何修复它...任何提示都很棒 :)
呃呃,犯了个愚蠢的错误
登录时通过 命令 在 authorized_keys 中调用了脚本。还有 no-pty 标志。