shell脚本中的开头#!/bin/bash #!/bin/sh是什么含义

标准的shell脚本文件中,其第一行通常是:#!/bin/bash 或 #!/bin/sh ,以经典的HelloWorld为例,shell脚本如下:

#!/bin/bash
echo "Hello World!"

那么#!/bin/bash到底是什么含义?

问答这个问题之前,我们先了解下shell版本进化历史,具体可以参考:Linux Shell进化简史

了解完shell版本进化后,我们开始深究#!/bin/bash到底是什么含义:

1、shell脚本是解释性语言

shell脚本需要专门的解析器来解析然后执行,不同的脚本语言需要匹配对应的解析器才能解析执行。#!/bin/bash 表示用/bin/bash解释脚本并执行,#!/bin/sh表示用/bin/sh解释脚本并执行。再比如python也是解释性编程语言,可以作为脚本编程语言,格式如下:

#!/usr/bin/python2.7
print("Hello World!")

常见的shell解释器有:

  • Bourne Shell(/usr/bin/sh或/bin/sh)
  • Bourne Again Shell(/bin/bash)
  • C Shell(/usr/bin/csh)
  • K Shell(/usr/bin/ksh)
  • Shell for Root(/sbin/sh)

linux默认一般都是/bin/bash,这也是我们看到大部分shell脚本其第一行都是#!/bin/bash的原因。

2、shell脚本并非所有#都表示注释

#!/bin/bash 是唯一#开头但是不表示注释。

3、#!/bin/bash只能在脚本文件第一行才有效
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值