2016-10-15 31 views
-1

有人請告訴我,#!/ bm/bash和#!/ bin/sh之間的區別和鏈接有什麼區別,爲什麼我們必須把它放在腳本的開始處?shell編程區別#!/ bm/bash和#!/ bin/sh

+0

當您將腳本中的第一行設置爲'#!/ bin/whatever'時,您將該文件的*命令解釋器*設置爲'/ bin/whatever'。所以,當你將它設置爲'#!/ bin/sh'時,你將文件的命令解釋器設置爲'/ bin/sh'(通常是POSIX shell,dash或bourne shell)。當你將它設置爲'#!/ bin/bash'時,你說*,「用bash來解釋文件」*。沒有更多,沒有更多。 –

+0

'/ bin/sh'永遠不是POSIX系統上的Bourne shell,因爲Bourne shell不符合POSIX標準。 – chepner

回答

0

bashsh是兩個不同的殼。基本上bashsh,具有更多的功能和更好的語法。

bash(1) man page

如果bash與名sh啓動,它試圖模仿的sh歷史版本儘可能密切的啓動行爲,同時也遵循POSIX標準。

你必須把第一行,以表示該腳本應該始終與bash運行,而不是另一個shell。