我已经看到通常在提到 shell 时使用的短语“sh compatible”。我不确定它是否也适用于可能在 shell 中运行的程序。
shell 或其他程序“sh 兼容”是什么意思?“sh不兼容”是什么意思?
编辑:这个问题询问 bash 和 sh 之间的区别非常相关: Difference between sh and bash
我仍然想直接回答“sh 兼容”的含义。一个合理的预期可能是“sh 兼容”意味着“实现了 Shell 命令语言”,但是为什么有这么多“sh 兼容”的 shell,它们为什么不同呢?
我注意到基本上我曾经使用过的系统都没有/bin/sh
真正的可执行文件。它总是一个符号链接dash
,bash
在POSIX模式,或者类似的东西。
为什么?使用真正的、原始的有/bin/sh
什么缺点?(速度?许可?)
Linux 和 BSD 都有像ls
andcat
和echo
and 之类的通用程序kill
。
它们来自相同的源代码,还是 Linux 和 BSD 都拥有这些程序的独特源代码?