我有一个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
答案 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 )。