2013-08-04 35 views
1

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

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

回答

3

我不知道有任何工具可以满足您的要求,但有一种称为checkbashisms的工具,它至少可以检查非便携式语法。 IIRC,它作为devscripts包的一部分包装在Ubuntu中。

Ubuntu也转而将短划线作为默认外壳,并写了一个关于coping with the change of making Dash be /bin/sh的有用网页。我发现它是一个很好的参考。

+0

Checkbashisms似乎是一个非常好的起点,因为它可以区分bash和POSIX shell。谢谢! – bitwelder

相关问题