将Bash脚本转换为Shell

时间:2015-10-28 15:09:18

标签: linux bash shell scripting

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

3 个答案:

答案 0 :(得分:3)

要将Bash脚本更改为POSIX compatible shell代码,您必须删除任何bashisms。虽然我不认为有任何工具可以可靠地处理所有基础知识,但您可以从checkbashisms开始。

答案 1 :(得分:2)

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

以下是 checkbashisms 高亮显示的bash特定构造( bashism )的示例:在测试中使用==而不是=

$ cat b.sh
#!/bin/sh

VAR=foo
if [ $VAR == bar ]; then
    echo 'bar!'
fi
$ checkbashisms b.sh 
possible bashism in b.sh line 4 (should be 'b = a'):
if [ $VAR == bar ]; then

答案 2 :(得分:2)

shellcheck工具(#!/bin/sh的shebang)会捕获许多bash-isms。

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