#! 脚本解释器(如何不加node 直接执行js文件)
内容来源:/liukai6/article/details/80071916
#!是特殊的表示符,其后面跟的是解释此脚本的脚本解释器shell的路径。
在Linux系统下,我们可以把JS文件当作shell脚本来运行,从而达到上述目的,具体步骤如下:
在shell脚本中,可以通过#!注释来指定当前脚本使用的解析器。所以我们首先在node-echo.js文件顶部增加以下一行注释,表明当前脚本使用NodeJS解析。
#! /usr/bin/env node
console.log('hello word')
NodeJS会忽略掉位于JS模块首行的#!注释,不必担心这行注释是非法语句。
然后,我们使用以下命令赋予node-echo.js文件执行权限。
$ chmod +x /home/user/bin/node-echo.js
最后,我们在PATH环境变量中指定的某个目录下,例如在/usr/local/bin下边创建一个软链文件,文件名与我们希望使用的终端命令同名,命令如下:
$ sudo ln -s /home/user/bin/node-echo.js /usr/local/bin/node-echo
应该知道的:
GNU/Linux操作系统中的/bin/sh本是bash (Bourne-Again Shell) 的符号链接,
但鉴于bash过于复杂,有人把bash从NetBSD移植到Linux并更名为dash (Debian Almquist Shell),
并建议将/bin/sh指向它,以获得更快的脚本执行速度。Dash Shell 比Bash Shell小的多,符合POSIX标准
Ubuntu继承了Debian,所以从Ubuntu 6.10开始默认是Dash Shell。
总结:#!/bin/sh是#!/bin/bash的缩减版。
python: 两种写法的区别
这个在unix类的操作系统才有意义。
#!/usr/bin/python是告诉操作系统执行这个脚本的时候,调用/usr/bin下的python解释器;
#!/usr/bin/env python这种用法是为了防止操作系统用户没有将python装在默认的/usr/bin路径里。当系统看到这一行的时候,首先会到env设置里查找python的安装路径,再调用对应路径下的解释器程序完成操作。
posted on -01-25 15:58 玉貔貅 阅读(...) 评论(...) 编辑 收藏
如果觉得《#! 脚本解释器(如何不加node 直接执行js文件)》对你有帮助,请点赞、收藏,并留下你的观点哦!