shell脚本中#!binbash
shell界面shell脚本需要指定使⽤什么解释器来解释这个脚本,shell脚本中#!/bin/bash表⽰当前脚本由/bin/bash这个程序来执⾏
Linux中的shell有多种类型,其中最常⽤的⼏种是Bourne  shell(sh)、bash、C  shell(csh)和Korn  shell(ksh)
(1)Bourne Shell(即sh)是UNIX最初使⽤的shell,平且在每种UNIX上都可以使⽤。Bourne Shell在shell编程⽅便相当优秀,但在处理与⽤户的交互⽅便作得不如其他⼏种shell。
(2)LinuxOS默认的是Bourne Again Shell,它是Bourne Shell的扩展,简称bash,与Bourne Shell完全兼容,并且在Bourne Shell的基础上增加,增强了很多特性。可以提供命令补全,命令编辑和命令历史等功能。它还包含了很多C Shell和Korn Shell中的优点,有灵活和强⼤的编辑接⼝,同时⼜很友好的⽤户界⾯
(3)C Shell是⼀种⽐Bourne Shell更适合的变种Shell,它的语法与C语⾔很相似。Linux为喜欢使⽤C Shell的⼈提供了Tcsh。
Tcsh是C Shell的⼀个扩展版本。Tcsh包括命令⾏编辑,可编程单词补全,拼写校正,历史命令替换,作
业控制和类似C语⾔的语法,他不仅和Bash Shell提⽰符兼容,⽽且还提供⽐Bash Shell更多的提⽰符参数。
(4)Korn Shell集合了C Shell和Bourne Shell的优点并且和Bourne Shell完全兼容。Linux系统提供了pdksh(ksh的扩展),它⽀持⼈物控制,可以在命令⾏上挂起,后台执⾏,唤醒或终⽌程序。
脚本⽂件中不加#!/bin/bash可以吗?
因为⼀般linux⽤户的默认shell都是bash,脚本运⾏时候会⽤⽤户的默认shell来解释脚本(如果#!/bin/bash不写的话),但很多unix系统可能会⽤bourne shell、csh或者ksh等来作为⽤户默认shell,如果脚本中包含的有符合bash语法却⼜让其他shell⽆法解释的代码存在,那么就必须在第⼀⾏写上这个(当然还要这个系统上安装了bash),以保证脚本的正常运⾏