#!命令

Unix 的命令行脚本都支持#!命令,又称为 Shebang 或 Hashbang。这个命令放在脚本的第一行,用来指定脚本的执行器。

比如 Bash 脚本的第一行。

  1. #!/bin/sh

Python 脚本的第一行。

  1. #!/usr/bin/env python

现在有一个提案,为 JavaScript 脚本引入了#!命令,写在脚本文件或者模块文件的第一行。

  1. // 写在脚本文件第一行
  2. #!/usr/bin/env node
  3. 'use strict';
  4. console.log(1);
  5. // 写在模块文件第一行
  6. #!/usr/bin/env node
  7. export {};
  8. console.log(1);

有了这一行以后,Unix 命令行就可以直接执行脚本。

  1. # 以前执行脚本的方式
  2. $ node hello.js
  3. # hashbang 的方式
  4. $ ./hello.js

对于 JavaScript 引擎来说,会把#!理解成注释,忽略掉这一行。