常见Shell及相关工具的全面解析
1. 相关Shell的优先级与标准
在Shell编程中,eval、exec、exit、export、readonly、return、set、shift、trap和unset这些命令的优先级高于函数。同时,POSIX标准旨在促进Shell脚本的可移植性,它避免提及某些基本的实现问题,例如不要求在后台作业、子Shell等操作中使用多任务处理,这样可以使Shell在像MS - DOS这样的非多任务系统上也能符合POSIX标准。
2. 不同Shell的特点
2.1 Korn Shell
Korn Shell是“传统”Shell(如Bourne和C Shell)的主要替代方案之一,于1986年作为AT&T“实验工具包”的一部分公开发布,由David Korn编写。1988年11月发布的版本应用最为广泛,但它并不完全符合POSIX标准,相比bash的合规性更低。1993年的版本在合规性上有所提升,还增加了更多功能并优化了现有功能。
与bash相比,Korn Shell有以下重要区别:
- 函数更像是独立的实体,与调用它的Shell不共享陷阱和选项。
- 支持关联数组。
- 支持浮点数和表达式。
- 支持协程,两个进程可以通过 <