将 Bash 个脚本转换为 Shell

Convert Bash Scripts To Shell

我有一个用 Bash 编写的脚本列表,现在我需要将它们转换为 Shell 脚本。我知道 bash 是 Shell 规范的扩展实现,因此,我正在寻找 Bash 中实现的扩展的一些规范,即 Bash 中的内容那不是 Shell 规范的一部分,所以我可以检查我的脚本并进行适当的修改。 有这样的文件吗? 或者,我们将不胜感激关于如何进行转换的任何其他建议。

将 Bash 脚本更改为 POSIX compatible shell code you have to remove any bashisms. While I don't think there is any tool out there that can reliably handle all bashisms you can start with checkbashisms

如果您使用基于 Debian 的发行版,则可以使用 devscripts 提供的 checkbashisms 命令] 包。

这是一个 bash 特定构造的示例(bashism),由 checkbash 突出显示isms: 在测试中使用 == 而不是 =

$猫b.sh
#!/bin/sh

VAR=富
如果 [$VAR == 酒吧];然后
    回声 'bar!'
菲
$ checkbashisms b.sh 
possible bashism in b.sh line 4 (should be 'b = a'):
if [ $VAR == bar ]; then

shellcheck 工具(具有 #!/bin/sh 的 shebang)将捕获许多 bash 主义。

任何未被捕获的都应该作为项目的错误归档。如果它们不妨碍实施,则应该在合理的时间内添加它们。作者反应还不错。