¿Cuál es la mejor (portátil y maintanable) el lenguaje de secuencias de comandos Shell hoy?

StackOverflow https://stackoverflow.com/questions/881757

  •  22-08-2019
  •  | 
  •  

Pregunta

Sé que esta pregunta ha comenzado una clase-guerras "religiosas" en el pasado y puede que no haya una respuesta correcta. Pero después de trabajar con ksh y csh durante los últimos 3-4 años y pasar por el dolor de portar de uno a otro o aplicar una pieza común de la lógica a múltiples versiones (que se lee el código heredado), si estoy escribiendo un nuevo guión, iría para ksh, pero por obligación y no por elección. ¿Hay una mejor opción que no sea ksh / CSH? También algo que es portable a través de sistemas Unix (Solaris / HP / IBM / FreeBSD) y Linux (y si no estoy pidiendo demasiado o si tiene sentido todas las variantes de Linux)

A la espera de sugerencias ...

Paz :) Devang Kamdar

¿Fue útil?

Solución

Yo sugeriría sh simple y llano, que está disponible en todas partes.

Además, vale la pena señalar que la portabilidad implica no sólo shell pero también otros comandos utilizados en una secuencia de comandos tal como awk, grep, ps o echo.

Otros consejos

Si realmente quiere que sea portátil (no sé que cualquier script de shell es mantenible), me gustaría especificar # / bin / sh y probar con tablero y si es posible otras conchas.

Yo esperaría BASH sea la cáscara más amplia difusión en el momento, ya que es el valor por defecto para muchas distribuciones de Linux (que incluso puede funcionar en Windows con cygwin, pero eso es probablemente cierto para los otros proyectiles, también). Una alternativa podría ser la de no utilizar el propio depósito para secuencias de comandos, pero uno de los idiomas scriping por ahí como Perl, Python, Ruby, ...

Yo suelo usar ksh. Me parece que es un buen compromiso entre las características y portabilidad. Es allí (o una versión compatible está disponible) en la mayoría de cajas de Linux y Solaris. Es un tiempo que no uso HP-UX (por suerte), pero estoy bastante seguro de que estaba disponible allí también.

Si todas las máquinas que necesita para apoyar son modernas, fiesta podría ser una opción. Solaris 10 viene con una copia. Es el valor por defecto en la mayoría de las máquinas Linux.

Su denominador común más bajo va a ser Bourne (sh), por lo que vale la pena considerar si la portabilidad es su principal preocupación. Le faltan algunas de las características más amigables de ksh y bash sin embargo.

Es todavía vale la pena dirección clara de CSH / tcsh para scripting. Programación Csh consideran perjudiciales es un viejo pero todavía en gran parte relevante .

Mi respuesta sería Perl.

Hace todo 'sh' 'bash', etc puede hacer de una manera más agradable más elegante.

También en realidad es más portátil. Una versión de Perl dado es muy consistente al otro lado de todas las plataformas. No existen diferencias significativas entre las distribuciones de Linux, Solaris y AIX mientras que portar secuencias de comandos shell entre estas plataformas es un dolor real.

Además, funciona en todas las ventanas paltforms! Siempre y cuando se evite acentos abiertos y "sistema ()" la secuencia de comandos tiene una buena oportunidad de correr.

Python! Salida IPython, que es un intérprete de Python mejorada. También:. Python para Unix y Linux administración de sistemas de

Puede escribir grandes guiones portátiles, y es divertido.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top