Teniendo en cuenta que POSIX es lo más parecido a un estándar común entre todos los unices, me interesa saber si existe un shell que lo soporte de forma exclusiva. Si bien la mayoría de los shells modernos brindan soporte para POSIX (y ejecutarán scripts compatibles con POSIX sin ningún problema), no hacen un buen trabajo al señalar las características que no cumplen.
¿Hay algún shell que implemente POSIX y POSIX únicamente, de tal manera que arroje un error para cualquier función no compatible?
EDITAR Quiero aclarar que no estoy pidiendo consejos generales para escribir scripts de shell portátiles. La pregunta relacionada mencionada en los comentarios ya cubrió esto. Pensé en esta pregunta cuando descubrí que bash
tiene un --posix
opción pero solo para descubrir que solo afecta algunos comportamientos de inicialización que no es exactamente lo que estoy buscando.
Respuesta aceptada:
Desafortunadamente, "portátil" suele ser un requisito más fuerte que "compatible con POSIX" para los scripts de shell. Es decir, escribir algo que se ejecute en cualquier shell POSIX no es demasiado difícil, pero hacer que se ejecute en cualquier shell del mundo real es más difícil.
Puede comenzar instalando cada shell en su administrador de paquetes, en particular posh
de debian Suena como lo que desea (SHell ordinario compatible con la política). La política de Debian es POSIX con algunas excepciones (echo -n
especificado, local
…).
Sin embargo, más allá de eso, las pruebas deben cubrir algunos shells (/bin/sh especialmente) en una variedad de plataformas. Hago pruebas en Solaris (/bin/sh y xpg4/sh) y BSD. AIX y HP-UX son muy compatibles y no causan problemas. bash es un pequeño mundo en sí mismo.
Recomendaría la guía Autoconf para shell portátil, que es absolutamente brillante y ahorra mucho tiempo. Gran parte de él está obsoleto, pero está bien; simplemente omita TruUnix y Ultrix, etc., si no le importa.