不同外壳之间有哪些显着差异?

不同外壳之间有哪些显着差异?

可能的重复:
主流 *NIX shell 之间的根本区别是什么?

如果我在 中编写 shell 脚本bash,它也会在 中运行ksh吗?

如果不是,有什么区别?

答案1

取决于您使用的特定命令/功能,但通常不会。

http://en.wikipedia.org/wiki/Comparison_of_command_shells了解 shell 之间差异的摘要。

答案2

不会。bash 和 ksh 都有自定义的特定扩展和行为。如果您想编写可移植脚本,请遵循 POSIX 语法:

http://pubs.opengroup.org/onlinepubs/009695399/utilities/sh.html

http://pubs.opengroup.org/onlinepubs/009695399/utilities/xcu_chap02.html

答案3

最好将每个单独的 shell 视为单独的编程语言。不要尝试写多语言shell 脚本,这使得它们不可读且笨重。相反,学习如何在一个 shell 中编程,然后小心地始终将该 shell 指定为脚本的解释器哈希棒在第一行。

请记住,运行脚本的 shell 与执行脚本的 shell 无关。因此,您可能正在通过 UNIX 系统进行交互,csh同时为ksh.

相关内容