我们在开发node的cli工具的时候,往需要在执行文件第一行加入#! /usr/bin/env node
这样一句话,这个到底什么意思,我们一点点拆开看看
#!
这个符号在Linux或者Unix中叫做:shebang,我们来看下维基百科的解释,原文如下,简单说就是在一个脚本前面的#!
这两个符号就叫shebang
,是不是感觉说了相当于没有说
In computing, a shebang is the character sequence consisting of the characters number sign and exclamation mark (#!) at the beginning of a script.
后面又补充了,其实就是unix类操作系统中一个普通文件带有#!
开头的,就会当做一个执行文件来运行,因为#
在很多脚本里面是用作注释开头的符号,如果当做执行脚本运行的话,相当于这行就是注释,其实没有什么用,只是标识的作用,说明这个文件可以当做脚本来运行
/usr/bin/env node
上面说了带有#!
就是代表此文件可以当做脚本运行,那么怎么运行呢,运行什么呢
/usr/bin/env node
这行的意思就是用node来执行此文件,node怎么来呢,就去用户(usr)的安装根目录(bin)下的env环境变量中去找,简单的说就是如果在windows上面,就去安装node的bin目录去找node执行器,一般我们都放在环境变量中,所以就能正确找到node来执行