2016-10-15 76 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。