将 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 主义。
任何未被捕获的都应该作为项目的错误归档。如果它们不妨碍实施,则应该在合理的时间内添加它们。作者反应还不错。
我有一个用 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 主义。
任何未被捕获的都应该作为项目的错误归档。如果它们不妨碍实施,则应该在合理的时间内添加它们。作者反应还不错。