在unix系统下,文件第一行使用#!指定脚本解释器。
例如在如下文件中,指定lua脚本解释器,才能使用lua执行语句。
#!/usr/local/bin/lua
print("hello world")
$ ./hello.lua
hello world
如果不设定脚本解释器,则默认使用/bin/bash解释执行。
$ ./hello.lua
./hello.lua: line 1: syntax error near unexpected token `"hello world"'
./hello.lua: line 1: `print("hello world")'
#!/usr/bin/python是告诉操作系统执行这个脚本的时候,调用/usr/bin下的python解释器;
#!/usr/bin/env python这种用法是为了防止操作系统用户没有将python装在默认的/usr/bin路径里。当系统看到这一行的时候,首先会到env设置里查找python的安装路径,再调用对应路径下的解释器程序完成操作。