2013-07-29 2 views
0

의 내가 명령 줄에서 스크립트를 실행 해요 가정 해 봅시다 :변수를 명령 줄에서 스크립트로 전달하는 방법은 무엇입니까?

numberOfTimes = ??? 

doStuff = (times) -> 
    while times > 0 
    console.log('doing stuff') 
    --times 

doStuff(numberOfTimes) 

가 어떻게이를 통해 물건을 할 횟수에 전달할 수 있습니다 : doSomeStuff.coffee의 모습

coffee ./scripts/doSomeStuff.coffee 

명령 줄? --eval은 명백한 선택처럼 보였지만 --eval='global.numberOfTimes=5'을 추가하면 도움이되지 않았습니다.

나는 bash에서 export REPEAT_TIMES=5으로 할 수 있지만 잠재적 인 부작용이 만연해 보인다.

답변

2

같은 당신은 Node.js를 함께 할 방법을 통해 process.argv

http://nodejs.org/docs/latest/api/process.html#process_process_argv

명령 :

coffee ./scripts/doSomeStuff.coffee 5 

커피 스크립트 :

numberOfTimes = process.argv[2] 
# index 0 is the interpreter: coffee 
# index 1 is the file: ./scripts/doSomeStuff.coffee 
# index 2 is the first argument: 5 

npm modules의 큰 숫자가 있습니다 더 나은 인터페이스를 제공하는 구문 분석 argv. 나는 optimist 나 자신과 즐거운 시간을 보냈습니다.

+0

아, 감사합니다. – jcollum

+0

다른 사람들의 답변에 코드를 삽입하지 마십시오. 기본 설정 방법을 권장하는 것처럼 보이지 않습니다. 꽤 복잡한 모양이기 때문에 기본 설정 방법을 사용하는 것이 좋습니다. 아주 간단히 말해서 :'numberOfTimes = process.argv [2]? 1' –

+0

당신이 맞아요. 아직 그 코드를 실행하지 않았고, 더 간단한 방법을 잊어 버렸습니다. 나는 그것을 추가하는 것이 더 완전한 대답이 될 것이라고 생각한다. 그래서 나는 그것을 덧붙였다. – jcollum

관련 문제