hashbang
#!
/bin/bash
声明解析可执行(chmod +x) 文件 的解析器的环境路径
解析
- 如果执行文件不存在hashbang,默认以当前Shell去解析可执行文件(即:$SHELL)
- 声明的解释程序,在执行文件时,会将程序内容作为参数传递给解释程序
- ./Perl.pl 以声明的解析程序解释
- bash Perl.pl 自动屏蔽hashbang,以bash程序环境解析
隐式声明
#!
必须在文件开头,作为解释器运行环境(绝对路径)
#!
/usr/bin/perl -w 使用带警告的 Perl 执行#!
/usr/bin/python3 -O:使用具有程序优化的 Python3 执行
信息隐蔽
- 隐式声明更有利于程序的维护和移植
- 解释器指令允许脚本和数据文件充当系统命令,无需在调用时由用户指定解释器,从而对用户和其它程序隐藏其实现细节