#! 脚本解释器(如何不加node 直接执行js文件)

内容来源:https://blog.csdn.net/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的安装路径,再调用对应路径下的解释器程序完成操作。

猜你喜欢

转载自www.cnblogs.com/yupixiu/p/10320100.html