在 linux 系统中,执行 node 脚本一般通过 node ./xxx.js 的形式。这与执行 shell 脚本直接输入脚本名称(./xxx.sh)不太一样。那么,node 脚本能不能如 shell 脚本一样直接执行呢?答案是:可以。
node 是支持 hashbang 的。hashbang 也称为 shebang,是用来告诉系统用什么解释器程序执行当前脚本。使用方法是在脚本开头用 #! 的形式指定解释器。
#!/usr/bin/env node
/usr/bin/env 是用来告诉系统到 PATH 里动态查找解释器。这可以让不同用户都可以执行脚本。如果安装的 node 没有添加到 PATH,可以直接指定 node 安装路径。
#!where/is/node
说明部分完了,可以实践了。新建一个脚本,比如 hello.js
#!/usr/bin/env node const a = 'hello' console.log(a)
然后执行:
./hello.js
然后就(可能)报错了:
hash ./hello.js permission denied
这是因为文件没有执行权限。需要给文件添加执行权限。
chmod u+x ./hello.js
然后就可以顺利执行了。