检查脚本是否真的需要运行特定的shell?

时间:2013-08-04 08:39:46

标签: bash shell unix

我应该将一些为bash编写的脚本部署到各种Linux / Unix机器上,我可能没有本机可用的bash。 我不知道原作者是否真的需要bash来运行脚本,或者只是因为它是现代Linux中的默认shell。

你知道任何脚本,应用程序或在线服务作为shell脚本的输入,使用几个常见shell的语法进行一些语法检查,并返回一些验证估计,如“此脚本应在以下shell中的一个:ash,bash,ksh,zsh“。

1 个答案:

答案 0 :(得分:3)

我不知道有任何工具可以满足您的要求,但有一个名为checkbashisms的工具至少可以检查不可移植的语法。 IIRC,它作为devscripts包的一部分打包在Ubuntu中。

Ubuntu也转而将dash作为默认shell并编写了一个关于coping with the change of making Dash be /bin/sh的有用页面。我发现它是一个很好的参考。