Linux #之间的shell编程差异/bm/bash和#/垃圾箱/垃圾箱

Linux #之间的shell编程差异/bm/bash和#/垃圾箱/垃圾箱,linux,bash,shell,bin,Linux,Bash,Shell,Bin,谁能告诉我#和#有什么区别/bm/bash和#/bin/sh和链接以获得更好的想法,为什么我们必须把它放在脚本的边缘?和是两个不同的shell。基本上,bash是sh,具有更多的特性和更好的语法 从: 如果调用名为sh的bash,它将尝试尽可能接近sh的历史版本的启动行为,同时也符合POSIX标准 必须放在第一行,以表示脚本应始终与bash一起运行,而不是另一个shell。一个在shshell中运行脚本,另一个在bashshell中运行脚本 将脚本中的第一行设置为#时,请参阅。/bin/what

谁能告诉我#和#有什么区别/bm/bash和#/bin/sh和链接以获得更好的想法,为什么我们必须把它放在脚本的边缘?

和是两个不同的shell。基本上,
bash
sh
,具有更多的特性和更好的语法

从:

如果调用名为
sh
bash
,它将尝试尽可能接近
sh
的历史版本的启动行为,同时也符合POSIX标准


必须放在第一行,以表示脚本应始终与bash一起运行,而不是另一个shell。

一个在
sh
shell中运行脚本,另一个在
bash
shell中运行脚本


将脚本中的第一行设置为
#时,请参阅。

/bin/whatever
您正在将该文件的命令解释器设置为
/bin/whatever
。因此,当您将其设置为
#时/bin/sh
您正在将文件的命令解释器设置为
/bin/sh
的任何值(通常是POSIX shell、dash或bourne shell)。当您将其设置为
#时/bin/bash
您的意思是“使用bash解释文件”。没有更多,也没有更少。
/bin/sh
永远不是POSIX系统上的Bourne shell,因为Bourne shell不符合POSIX。