首页 > 其他分享 >Shebang

Shebang

时间:2023-11-06 11:33:39浏览次数:29  
标签:bin 解释器 Shebang shebang 指定 解释程序 bash

Shebang

计算机程序中, shebang 指的是出现在文本文件的第一行前两个字符 #!

在Unix系统中,程序会分析 shebang 后面的内容,作为解释器的指令,例如

  1. 以 #!/bin/bash 开头的文件,程序在执行的时候会调用 /bin/bash ,也就是bash解释器

  2. 以 #!/usr/bin/python 开头的文件,代表指定python解释器去执行

  3. 以 #!/usr/bin/env 解释器名称,是一种在不同平台上都能正确找到解释器的方法

注意事项:

  • 如果脚本未指定 shebang ,脚本执行的时候,默认用当前shell去解释脚本,即$SHELL
[root@localhost~]# echo $SHELL
/bin/bash
  • 如果 shebang 指定了可执行的解释器,如 /bin/bash /usr/bin/python ,脚本在执行时,文件名会作为参数传递给解释器
  • 如果 #! 指定的解释程序没有可执行权限,则会报错“bad interpreter: Permission denied”。
  • 如果 #! 指定的解释程序不是一个可执行文件,那么指定的解释程序会被忽略,转而交给当前的SHELL去执行这个脚本。
  • 如果 #! 指定的解释程序不存在,那么会报错“bad interpreter: No such file or directory”。
  • ! 之后的解释程序,需要写其绝对路径(如:#!/bin/bash),它时不会自动到$PATH中寻找解释器的。

  • 如果你使用 “bash test.sh”这样的命令来执行脚本,那么#!这一行将会被忽略掉,解释器当然时用命令行中显示指定的bash

欢迎关注我的CSDN个人博客知乎

标签:bin,解释器,Shebang,shebang,指定,解释程序,bash
From: https://www.cnblogs.com/oldit/p/17811967.html

相关文章

  • 关于 Bash 脚本中 Shebang 的趣事
    哈喽大家好,我是咸鱼不知道小伙伴们在写Bash脚本或者说看别人的Bash脚本的时候有没有注意过脚本的第一行#!/bin/bashBash脚本的第一行往往以#!开头,这一行称作shebang行在类UNIX系统中,shebang行用来指定脚本的解释器路径,通常出现在第一行,格式如下#!interpreter_......
  • Linux shell script shebang env All In One
    LinuxshellscriptshebangenvAllInOne指定shellscript的运行环境shellscriptshebangenvhashbangenv#!\usr\bin\envbash❌#!\usr\bin\envbash#❌#!/usr/bin/env✅#!/usr/bin/envbash✅demos#!/usr/bin/envbash#✅exportN=1#case1......