0

假设我在命令行运行一个脚本:

coffee ./scripts/doSomeStuff.coffee

doSomeStuff.coffee 看起来像:

numberOfTimes = ??? 

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

doStuff(numberOfTimes)

如何通过命令行传递执行操作的次数?--eval似乎是显而易见的选择,但添加--eval='global.numberOfTimes=5'并没有帮助。

我可以用export REPEAT_TIMES=5from bash 来做到这一点,但这似乎充满了潜在的副作用。

4

1 回答 1

3

与 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模块为解析提供了更好的接口argv。我自己和乐观主义者玩得很开心。

于 2013-07-29T20:46:55.717 回答