POSIX shell 脚本和性能调优

Per*_*ulf 2 performance shell-script posix

现在,我正在研究 shell 脚本的性能调整,并且我被阻止使用 POSIX shell 脚本,但这只是一个标准,但我认为它比标准更重要。它经过定制,经过调整,终于获得了高性能。我想你可以帮助我/我们创建一个线程来帮助 POSIX shell 脚本。我的问题是:

  1. POSIX shell 脚本是否具有与其他 shell 编程相关的高性能?
  2. 如何迁移到 POSIX shell 脚本?
  3. 不能将我的代码仅用于 POSIX 吗?
  4. 如果你更喜欢没有 POSIX 的高性能,你能说明一下吗?

VaT*_*aTo 5

问题

当学生在使用 bash 的系统(例如 /bin/sh)上进行初始开发时,他们的脚本通常会遇到可移植性问题。虽然 bash 支持 POSIX 标准中的所有功能,但它也支持广泛的 POSIX 未定义的扩展功能。当脚本被编写为使用这种“bashisms”时,当 /bin/sh 是其他一些符合 POSIX 的 shell 时,不能保证它正确运行。在 nice.harvard.edu(一个 Ubuntu 系统)上,/bin/sh 是 dash,一个运行速度比 bash 快得多的 shell,但不支持超出 POSIX 标准指定的功能。在脚本中使用“bashisms”的学生通常在最后一刻发现,他们的脚本不会在 /bin/sh 下很好地运行。

解决方案

以下是一些帮助您避免此类问题的提示:

  • 如果可能,总是使用 /bin/sh 很好地开发脚本
  • 出于开发目的,在您的个人系统上安装严格的 POSIX shell(例如 dash)
  • 仅在开发 shell 脚本时使用此处指定的功能
  • 查看此文档以获取有关识别和替换“bashisms”的提示
  • 查看 autoconf 的完整文档 ('info autoconf.info'),其中有一个关于“便携式 Shell”编程的很好的部分

有关更多信息,请参阅内容。