我应该将一些为 bash 编写的脚本部署到我可能没有原生可用的 bash 的各种 Linux/Unix 机器上。我不知道原作者是否真的需要 bash 来运行脚本,或者仅仅是因为它是现代 Linux 中的默认 shell。
您是否知道任何脚本、应用程序或在线服务将 shell 脚本作为输入,使用几种常见 shell 的语法进行一些语法检查,并作为输出返回某种验证估计,例如“这个脚本应该在以下外壳:ash、bash、ksh、zsh"。
我不知道有什么工具可以满足您的要求,但是有一个叫做checkbashisms的工具至少可以检查不可移植的语法。IIRC,它作为 devscripts 包的一部分打包在 Ubuntu 中。
Ubuntu 还切换到将 dash 作为默认 shell,并写了一个有用的页面来应对将 Dash 设置为 /bin/sh 的变化。我发现它是一个很好的参考。