假设我在命令行运行脚本:
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
来做,但这似乎充满了潜在的副作用。
答案 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度过了愉快的时光。