Hay checkbashisms . En Debian, se envía como parte de las herramientas de mantenimiento de paquetes .
Pon a prueba tus guiones bajo guión y elegante . Ambos tienen algunas construcciones que no son POSIX, pero si su script funciona en ambos, es probable que funcione en la mayoría de los lugares. (Con la advertencia de que es difícil probar los scripts de shell típicos, ya que tienden a tener muchos casos de esquina).
Si desea que sus scripts sean portables en plataformas Linux integradas, pruébelos con BusyBox . Tenga en cuenta que BusyBox puede estar más o menos restringido, dependiendo de qué tan pequeño desee un sistema integrado; Es bastante normal tener scripts que se basan en una característica que algunas instalaciones de BusyBox no tienen.
Tenga en cuenta que la no portabilidad no proviene solo del shell, sino que también proviene de utilidades externas. OpenBSD y Solaris tienden a tener utilidades con características POSIX y no mucho más, por lo que son buenas para probar la portabilidad.
Deberá consultar la especificación POSIX y otros recursos mencionados en este hilo (especialmente el manual de autoconf ); pero eso es documentación, no ayuda si usa una función accidentalmente.