use*_*057 22 shell compatibility dash shell-script ash
我想知道为 dash、ash 和 sh 编写的脚本是否 100% 兼容?
dash 或 ash 或语法更改是否有任何附加功能?
据我所知,ash 是 sh 的直系后代。
Zla*_*tko 21
简短的回答是否定的,它们不是 100% 兼容的。
但是大多数 shell 都非常接近基本的,因此您很少会遇到不一致的情况。事实上,大多数 shell 的区别并不在于添加的语法,而是一些额外的功能,如制表符完成和类似的功能。
此外,它dash
是ash
从 BSD 到 Linux的后代,或者说是从 BSD 移植到 Linux,准确地说。所有这些都应该是sh
. 事实上,sh
在大多数系统上只是一个符号链接bash
,dash
或别的东西。重要的是 POSIX 合规性——当您根据标准编写脚本时,您不会遇到问题。
这些外壳之间的区别在于优化和性能。它们的功能不那么丰富bash
,但它们是完全合法的外壳。例如,Bash 功能丰富,可用于交互式工作,但会占用更多内存。