初始化node.js脚本时的条件

时间:2016-04-21 11:01:02

标签: node.js shell

我有一个node.js可执行脚本,通常以:

开头
#!/usr/bin/env node

var ...

为了在node.js二进制文件上使用命令行参数--use_strict,我需要将其更改为

#!/usr/bin/env node --use_strict

这可能会让其他人搞砸。

有没有办法检查调用脚本时是否提供了--use_strict,然后将其传递给节点可执行文件?

类似

./myscript --use_strict
---
if --use_strict
  #!/usr/bin/env node --use_strict
else
  #!/usr/bin/env node

1 个答案:

答案 0 :(得分:0)

#!/usr/bin/env node将指示操作系统在文件上的#!(" shebang")之后调用该命令。如果您的脚本位于文件your-node-script中,则操作系统基本上运行此命令:

/usr/bin/env node your-node-script

env命令将搜索环境中的第一个参数,并使用其余参数执行它。如果您的node可执行文件位于/usr/bin/node,则系统会调用:

/usr/bin/node your-node-script

要解决您的问题,您只需编写一个包装脚本来执行相同的操作来调用您的节点脚本:

#!/bin/bash
/usr/bin/env node --use-strict your-node-script "$@"

或者:

#!/bin/bash
/usr/bin/node --use-strict your-node-script "$@"

(仅适用于node/usr/bin实际存在的系统。

编辑:现在转发参数(感谢 Etan Reisner )。