有没有有效的方法来测试脚本是否仅使用 POSIX 功能?

有没有有效的方法来测试脚本是否仅使用 POSIX 功能?

如果我想确保我编写的脚本尽可能具有可移植性,并且仅使用POSIX功能,而不是说,狂欢功能,有没有明确的方法来检查这一点?

显然,我可以尝试在不同于我常用的 shell 的 shell 中运行它,但这只能证明我的脚本仅限于该 shell 支持的功能……这些功能本身可能会超越POSIX

答案1

POSIX模式重击,轻松运行:

bash --posix /PathToYourScript

进入其中并在那里运行你的脚本。

它应该能让你清楚地知道你的脚本是否POSIX- 兼容与否。

据我所知,短跑,这是Ubuntu / Debian 及其衍生产品的标准(sh是符号链接),是一种非常严格的dashPOSIXshell,这可能值得尝试,因为它比重击POSIX模式。

答案2

另一种方法是蒂姆·舒马赫的回答可以将脚本复制粘贴到ShellCheck.net,只改变舍邦#!/bin/sh仔细研究输出。

如果你正在编写代码,并且你正在寻找的不仅仅是不遵守POSIX,还有其他错误和建议。如果你每天都使用它,你会特别印象深刻。


当然,你可以这样做:

bash --posix /PathToYourScript

但根据我的经验,短跑,这是 Ubuntu / Debian 及其衍生产品的标准(sh是 的符号链接dash),是一种非常严格的POSIXshell,甚至比重击POSIX模式。

相关内容