在计算机科学中,Shebang(也称为Hashbang)是一个由井号和叹号构成的字符串行(#!),其出现在文本文件的第一行的前两个字符。 在文件中存在Shebang的情况下,类Unix操作系统的程序载入器会分析Shebang后的内容,将这些内容作为解释器指令,并调用该指令,并将载有Shebang的文件路径作为该解释器的参数
例如,以指令
#!/bin/sh
开头的文件在执行时会调用Bourne shell(或兼容的shell,例如bash、dash等)。这行内容也是shell脚本的标准起始行。
由于"#"符号在许多脚本语言中都是注释标识符,Shebang的内容会被这些脚本解释器自动忽略。 在"#"字符不是注释标识符的语言中,例如Scheme,解释器也可能忽略以"#!"开头的首行内容,以提供与Shebang的兼容性
Shebang这一语法特性由#!开头,即井号和叹号。 在开头字符之后,可以有一个或数个空白字符,后接解释器的绝对路径,用于调用解释器。 在直接调用脚本时,调用者会利用Shebang提供的信息调用相应的解释器,从而使得脚本文件的调用方式与普通的可执行文件类似
下面列出了一些典型的shebang解释器指令:
#!/bin/sh — 使用sh,即Bourne shell或其它兼容shell执行脚本
#!/bin/csh — 使用csh,即C shell执行
#!/usr/bin/perl -w — 使用带警告的Perl执行
#!/usr/bin/python -O — 使用具有代码优化的Python执行
#!/usr/bin/php — 使用PHP的命令行解释器执行
用途
解释器指令允许脚本和数据文件充当系统命令,无需在调用时由用户指定解释器,从而对用户和其它程序隐藏其实现细节。
假设/usr/local/bin/foo中有一以下行开头的Bourne shell脚本
#!/bin/sh -x
而它被如此调用("$"是命令提示符)
$ foo bar
该命令的输出等同于
$ /bin/sh -x /usr/local/bin/foo bar
分享到:
相关推荐
225-运行程序-01-增加Shebang符号直接运行Python程序.flv
前端开源库-rollup-plugin-shebangRollup plugin shebang是一个Rollup.js插件,用于在可执行文件上预挂起一个Unix样式的shebang
hashpling:hashpling允许您在非UNIX平台上使用shebang
从shebang获取命令 安装 $ npm install shebang-command 用法 const shebangCommand = require ( 'shebang-command' ) ; shebangCommand ( '#!/usr/bin/env node' ) ; //=> 'node' shebangCommand ( '#!/bin/bash...
舍邦正则表达式匹配行的正则表达式安装 $ npm install shebang-regex用法 const shebangRegex = require ( 'shebang-regex' ) ;const string = '#!/usr/bin/env node\nconsole.log("unicorns");' ;shebangRegex . ...
汇总插件保留shebang 自动在您的输入文件中保留一个Shebang。 如果您要使用Rollup构建CLI,则可以解决npm bin损坏的问题:) 安装 npm i -D rollup-plugin-preserve-shebang 用法 import shebang from 'rollup-...
bang sbang使您可以使用很长的shebang( #! )行来运行脚本。 许多操作系统在shebang行中限制了可能的参数的长度和数量,这使得难以使用目录层次结构深处或需要特殊参数的解释器。 要使用该命令,请将长长的shebang...
shebang.nvim 一个用 Lua 编写的简单 Neovim 插件,在编辑新文件时会自动插入一个shebang行。 安装 Plug ' samirettali/shebang.nvim ' 定制 您可以通过设置全局变量shebang_shells和shebang_commands来设置自定义 ...
资源来自pypi官网。 资源全名:parse-shebang-0.0.1.tar.gz
ScriptCs.Shebang 对支持 模块告诉 ScriptCs 在解析时忽略 shebang 行。 如果没有这个模块,但是在 .csx 文件中有 shebang,你会得到语法错误。 该模块对于在 *nix 系统上使用编写脚本非常有用。 安装 安装 为 *...
咕unt-strip-shebang Grunt插件可从文件中删除shebang。安装$ npm install --save-dev grunt-strip-shebang用法require ( 'load-grunt-tasks' ) ( grunt ) ;grunt . initConfig ( {stripShebang : {dist : {files : ...
-shebang-ignore esformatter 插件:忽略 shebang 行,以便可以在不解析错误的情况下格式化其余的 javascript 代码 Esformatter-shebang-ignore是的插件,旨在允许对包含 shebang 行的文件进行代码格式化。 这个...
舍邦 用于 shebang PostgreSQL 谈话的 PDF 和支持脚本
注意:您需要具有root特权才能安装Shebang。 打开终端应用程序,然后粘贴以下内容: bash <(curl -fsSL "https://raw.githubusercontent.com/keesvv/shebang/master/install.sh") 而已! 现在您可以开始滚动了...
/bin/sh )安装 $ npm install --save strip-shebang用法 const fs = require ( 'fs' ) ;const stripShebang = require ( 'strip-shebang' ) ;const str = fs . readFileSync ( 'bin' , 'utf8' ) ;//=> #!/usr/bin/...
gulp-strip-shebang 模块的Gulp插件。 从文件中删除shebang。安装$ npm install --save-dev gulp-strip-shebang用法const gulp = require ( 'gulp' ) ;const stripShebang = require ( 'gulp-strip-shebang' ) ;gulp...
科德一个简单的 bash 脚本添加shebang(如果需要) 添加信息标题添加代码模板(可切换) 使文件可执行更新信息标题的最后修改列支持的语言: bash,c,c ++,c#,css,java,javascript,perl,php,python,ruby,...
c99sh基本概念控制文件Shebang技巧C ++ C11学分基本概念一种“ shebang”友好脚本,用于“解释”单个C99,C11和C ++文件,包括rcfile支持。 例如,安装c99sh基本概念控制文件Shebang技巧C ++ C11积分基本概念一种“ ...
Openshebang 这是OpenShebang,Open CMS,LMS和整个Shebang的框架
舍邦POC 聊天量表演示: :