如何从命令行将变量传递到脚本?

时间:2013-07-29 20:45:48

标签: coffeescript

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

coffee ./scripts/doSomeStuff.coffee

doSomeStuff.coffee的样子:

numberOfTimes = ??? 

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

doStuff(numberOfTimes)

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

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

1 个答案:

答案 0 :(得分:3)

与node.js相同,通过process.argv

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

命令:

coffee ./scripts/doSomeStuff.coffee 5

CoffeeScript的:

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度过了愉快的时光。