2009-11-20 5 views
8

He pasado algún tiempo tratando de elegir uno, en las comparaciones netas son para zsh vs bash y fish vs bash. Pero no pude encontrar ninguna comparación para zsh vs fish. Programo en C y C++, aparte de los tipos de hello-world, nunca hice ningún script importante. Pero ahora estoy probando Python y Shell-Scripts. ¿Qué caparazón mantiene más jugo en términos de productividad primero y luego desarrollo? O al final, la potencia y usabilidad de cualquier shell llega a sus archivos _rc. Entonces, ¿soy lo suficientemente bueno con bash?Recomendación - Zsh vs FishShell. Scripts, productividad y poweruser perse

+0

'fish' para uso interactivo,' zsh' para scripting - si es sólo entre los dos. Personalmente, creo que mantener buenos hábitos con respecto al cumplimiento de POSIX sh es lo suficientemente importante como para seguir con bash, o ksh si me importa más el rendimiento. –

+0

... dicho esto, esta pregunta está explícitamente en contra de las reglas aquí; hay una razón cercana específicamente para recomendar solicitudes de herramienta, * y * otra para preguntas enfocadas en la opinión. –

+0

Buena comparación de diferentes shells - http://hyperpolyglot.org/unix-shells – valentt

Respuesta

10

Históricamente hubo una clase de llama entre las conchas C (CSH y TCSH) y Bash. La queja contra las variantes de CSH es que son malas para las secuencias de comandos.

En los años que he sido un adicto a la CLI, he nunca hice scripts independientes donde se seleccionó el lenguaje de scripting porque así era mi caparazón.

He escrito una variedad de secuencias de comandos que pueden dividirse en dos categorías:

  1. los que ayudan a la productividad de mi línea de comandos
  2. Los que no están directamente relacionados con la productividad de mi línea de comandos.

Los guiones de la categoría 1. casi siempre están escritos en el lenguaje de guiones de mi intérprete de órdenes (a menudo como funciones cuando uso ZSH y antes usaba BASH las funciones de soporte).

Los scripts en la categoría 2. se escriben en el aspecto que parezca más eficiente (tanto el tiempo de desarrollo como el tiempo de ejecución tomados en consideración). A menudo me encuentro escribiendo pequeños guiones en Perl, C (compilados, obviamente), BASH/ZSH/SH o cualquier otra cosa que quiera. He hecho un poco de scripts en Python (pero no mucho), e incluso recurro a Java ocasionalmente (compilado, de nuevo).

¿De qué estoy hablando? No base su elección de shell en sus capacidades de scripting independientes. Elija su caparazón para su utilidad como caparazón. Script en cualquier otra cosa que elija. Probablemente seas lo suficientemente bueno con BASH como tu caparazón (aunque me gusta ZSH un poco más, **/* globbing es agradable y algunas otras cosas pequeñas, pero la mayoría de los guiones que he escrito para ZSH son idénticos a su BASH contrapartes).

+2

Re: '**/*' - versiones modernas (4.x) de bash también admiten globs recursivos; ver 'shopt -s globstar'. Lo que en mi opinión es una gran diferencia es el comportamiento de división de cadenas en expansiones sin comillas; zsh lo hace de la manera correcta, mientras que bash lo hace de la manera que es compatible con POSIX. Definitivamente hay mucho espacio para la diferencia legítima en términos de lo que uno prefiere aquí; personalmente, me comprometo a cumplir con el estándar mal pensado pero omnipresente. –

4

si no puedes encontrar ninguna comparación entre zsh vs fish, entonces pruébalos tú mismo. Esa es la única forma en que puedes decir cuál prefieres, nadie más puede decírtelo. Además, defina el significado de la productividad. Para mí, es la abundancia de módulos y las capacidades internas del lenguaje. Si has comenzado con Python, ve por ello. En cuanto a las conchas, puedes aprender menos (no decir que te olvides por completo), con respecto a tal vez entender tus scripts de rc y otros elementos del sistema, etc. Además de eso, Python puede hacer lo que hace el caparazón.