GNU/Linux >> Tutoriales Linux >  >> Linux

¿Cómo probar el cumplimiento de Posix de los scripts de Shell?

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.


Linux
  1. ¿Cómo probar qué Shell estoy usando en una terminal?

  2. ¿Cómo eliminar los privilegios de raíz en los scripts de Shell?

  3. ¿Cómo crear un entorno de carcasa limpia para uso temporal?

  4. Cómo hacer eco de una nueva línea en Bash Shell Scripts

  5. ¿Qué son los scripts de Shell? ¿Cómo crear scripts de Shell?

Cómo crear scripts de shell

Shell Scripting para principiantes:cómo escribir Bash Scripts en Linux

¿Cómo usar if-else en Shell Scripts?

Comprender el bucle for en los scripts de Shell

¿Cómo leer argumentos de línea de comando en scripts de Shell?

¿Cómo modificar /etc/hosts desde scripts de shell?