컴퓨터에 로그인 한 사용자의 이름과 로그인을 캡처하는 'finger -lp'명령을 실행하는 툴팁 작업을 만들려고합니다.그란트 쉘 명령에서 사용자 이름 캡처
module.exports = function (grunt) {
grunt.registerTask('username', '',
function() {
var done = this.async();
grunt.util.spawn({
cmd: 'finger',
args: ['-lp'],
opts: {stdio: 'inherit'},
fallback: ''
}, function (err, result, code) {
console.info('RESULT: ',err, result, code);
done();
});
});
};
: 여기
Login: abc123 Name: John Doe
Directory: /Users/abc123 Shell: /bin/bash
On since Thu Oct 30 19:40 (EDT) on console, idle 19:34 (messages off)
On since Fri Oct 31 10:24 (EDT) on ttys002
No Mail.
내가 grunt.util.spawn를 사용하여 동일한 명령을 실행하고 방법입니다 터미널에서 실행될 때
여기에 손가락 -lp '의 표준 출력이다 위의 console.info 명령문의 결과는 다음과 같습니다.
[email protected]:~/WorkFiles/john-doe/$ grunt username
Running "username" task
Login: abc123 Name: John Doe
Directory: /Users/abc123 Shell: /bin/bash
On since Thu Oct 30 19:40 (EDT) on console, idle 19:34 (messages off)
On since Fri Oct 31 10:24 (EDT) on ttys002
No Mail.
RESULT: null { stdout: '', stderr: '', code: 0, toString: [Function] } 0
따라서 Grunt 작업이 실행되지 않습니다. 전자 명령 finger -lp
은 터미널에 결과를 출력하지만, grunt.util.spawn
프로세스에 의해 캡처되지 않습니다. result
개체의 stdout
은 비어 있습니다. 그것은 무엇 grunt.util.spawn 사용 때문에
RESULT: null { stdout: '', stderr: '', code: 0, toString: [Function] } 0
것은 내가 node의 예를 다음과 같은거야.