2014-11-19 3 views
0

배열로 바꾸려는 명령 줄 인수 문자열을 전달했습니다.모방 process.argv

node log_argv.js --howdy="boop \"\' dkjf roop" what -jump -gop=30 

log_argv.js :

일반적으로, 나는 같은 것을 할 수

console.log(process.argv.slice(2)); 

그리고 응답은 다음과 같습니다

[ '--howdy=boop "\\\' dkjf roop', 'what', '-jump', '-gop=30' ] 

어떻게 process.argv을 모방 할 수 이 경우 스크립트에서 argv 문자열을 받았는데 실제로 process.argv를 사용할 수 없습니까?

var arg_string = '--howdy="boop \"\' dkjf roop" what -jump -gop=30' 
var arg_array = parse_arguments(arg_string); 
console.log(arg_array); 

을 그리고 결과는 위와 같이 예를해야한다 : 예를 들어, 나는 스크립트가있을 수 있습니다 https://github.com/mccormicka/string-argv :

[ '--howdy=boop "\\\' dkjf roop', 'what', '-jump', '-gop=30' ] 

내가 본 가장 가까운 것은 이것이다. 위의 인수 문자열을 보면 process.argv와 다른 결과가 나옵니다.

감사합니다.

답변

2

shellwords 포트를 사용하여 bash와 같은 방법으로 문자열을 구문 분석 할 수 있습니다. npm (https://github.com/jimmycuadra/shellwords)에 shellwords이라고하는 루비의 쉘 워드 모듈의 자바 스크립트 버전이 있습니다. 그런 다음 코드에서

npm install shellwords

:

var shellwords = require('shellwords'); 
shellwords.split("foo 'bar baz'"); 
// ["foo", "bar baz"] 

당신은 여기를 테스트 할 수 있습니다 : 정말 잘 작동 https://api.blockspring.com/jtokoph/8c997e4dd22157e7d07a23123f08fc0d

+0

우와. 감사! – bumpkin