📅  最后修改于: 2023-12-03 15:34:57.576000             🧑  作者: Mango
sh
和 bash
的区别sh
和 bash
都是 shell 的一种。Shell 是操作系统的一种命令解释器,它连接用户与底层操作系统内核。Shell 解释用户输入的命令并执行对应的操作系统函数。其中,sh
是 Shell 的一种最小化版本,bash
则比较常用且较完善。
sh
是 POSIX 标准定义的 shell,被认为是比较规范的 shell,而 bash
建立在 sh
基础上扩充了很多功能。sh
的执行速度比 bash
要快,因为 bash
是基于交互的命令行的。但是在交互作业中,bash
具有更好的用户交互体验,并且支持很多方便的快捷键等功能。bash
和 sh
方式上的不同之处有很多,如在使用变量时 $var
或者 ${var}
在 bash
和 sh
中是有区别的。又如,在 sh
中,数组可以通过空格分隔元素来创建,而在 bash
中,数组明确需要使用括号进行声明。bash
支持命令行编辑,在命令行中进行光标定位、删除、替换等操作,极大地方便了用户输入和编辑命令。bash
还提供了大量的扩展,如变量参数扩展、表达式求值、重定向、命令替换、函数定义等等。bash
可以支持类似 C 语言的语法,可以用结构体和数组等数据结构。sh
和 bash
都是 shell,但是 bash
比 sh
更加强大,拓展了很多的功能。如果只是简单的脚本,使用 sh
即可,如果希望有更多的灵活性和更多的扩展,使用 bash
更加合适。