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只能在腳本文件第一行纔有效

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章