bash
我对带有和sh
扩展名的文件进行了一些研究。大多数人和资源都说,如果文件有bash
扩展名,那么它就包含bash
脚本。同样,带有sh
扩展名的文件包含sh
脚本。
但是,我找不到 bash 和 sh 脚本之间的区别。有一些课程和文章旨在教人们在 shell 上编写脚本,它们都有标题shell scripting
。
在这一点上,shell脚本对应的是哪一个?
Bash 脚本或 Sh 脚本。
我试图理解的是 bash 和 sh 脚本之间的区别。
bash
我对带有和sh
扩展名的文件进行了一些研究。大多数人和资源都说,如果文件有bash
扩展名,那么它就包含bash
脚本。同样,带有sh
扩展名的文件包含sh
脚本。
但是,我找不到 bash 和 sh 脚本之间的区别。有一些课程和文章旨在教人们在 shell 上编写脚本,它们都有标题shell scripting
。
在这一点上,shell脚本对应的是哪一个?
Bash 脚本或 Sh 脚本。
我试图理解的是 bash 和 sh 脚本之间的区别。
POSIXland 中的文件名没有“扩展名”。文件名中的A
.
与任何其他字符没有什么不同,也没有特定的含义,除了那些可能被我们这样的肉袋归因于它们的含义。人们可能希望任何名称以 结尾的文件都是
.bash
要通过bash
shell 执行的脚本,但不能保证这一点。事实上,给所有的 shell 脚本一个后缀是很常见的,
.sh
不管它打算使用哪个解释器,因为 shebang 行应该正确地指定应该使用哪个 shell 来执行这样的文件。sh
并且bash
是两个不同但相关的壳;其中有两个,例如ksh
,csh
,zsh
,fish
,ash
,dash
等等。每个 shell 都有自己的语法、功能、习惯和缺点。一些 shell 在很大程度上相互兼容(通常任何为其编写的脚本
sh
也可以在bash
或许多其他 shell 中运行),但有些则不是。我每天发现的唯一重要问题
bash
是sh
比较运算符。在bash
双等号运算符==
可用于字符串比较:但这
sh
是一个语法错误,因为它需要单等号。我并不是说这是唯一的区别,但这是一个普遍存在的问题。