或者使用 zsh 相对于 ksh 有什么优势吗?
是否有任何特定命令无法在 shell 中成功执行,或者主要差异与命令无关,而是其他原因?
答案1
有ksh
具体的命令/选项/快捷方式/功能这不会与 一起工作或以不同的方式工作zsh
,并且还有更zsh
具体的事情在 下会失败ksh
。
如果您的目标是编写脚本,我的建议是坚持使用两个 shell 共享的 POSIX 功能。zsh
可能会错过一些 POSIX 协议,因为合规性不在其设计目标之内。
如果您询问要使用哪种交互式 shell,并且 99% 的时间都使用同一台计算机,或者您使用的计算机知道安装了您首选的 shell,那么选择实际上取决于您以及个人意见。
另一方面,如果您经常从一台机器切换到另一台机器,主要的风险是找不到要安装的预期 shell 的挫败感,并且错过了一些您习惯使用的功能。
ksh
由于无论 Unix 和 Linux 发行版如何,都不能zsh
保证安装,因此没有明确的答案。ksh
往往是许多 Unix(如 Solaris、AIX、HP-UX)上的默认 shell 或至少是符合标准的 shell,而zsh
通常只是需要单独安装的可选 shell。
另请注意,有各种 ksh 实现具有不同的功能集(或缺乏),包括pdksh
,ksh88
因此ksh93
,如果您从一种实现切换到另一种实现,或者从较新的版本切换到较旧的版本,您可能会遇到类似的令人沮丧的体验。