Desde mi experiencia con la programación moderna y los lenguajes de secuencias de comandos, creo que la mayoría de los programadores generalmente están acostumbrados a referirse al primer elemento de una matriz por  como índice.
 ¿Hay alguna ventaja sustancial en el uso de 1 ?
 Estoy seguro de que he oído hablar de más idiomas además de Zsh que se comportan de manera similar con matrices; está bien para mí, ya que es igualmente conveniente.
 Sin embargo, como los lenguajes de secuencias de comandos de shell lanzados anteriormente y ampliamente utilizados, como ksh y bash, todos usan 0, por qué ¿Alguien elegiría alterar este "estándar" común?
 Mi respuesta inmediata a mi pregunta sería "por supuesto que no";
 entonces, la única explicación que se me ocurre con respecto a esta "característica exclusiva" de las conchas sería "simplemente hicieron esto para mostrar un un poco más de su genial caparazón “.
Sin embargo, no sé mucho sobre Zsh o su historia, y existe una gran posibilidad de que mi teoría trivial sobre esto no tenga ningún sentido.
¿Hay alguna explicación para esto? ¿O es simplemente por gusto personal?
Respuesta aceptada:
- Prácticamente todas las matrices de shell (Bourne, csh, tcsh, fish, rc, es, yash) comienzan en 1. ksh es la única excepción que conozco (bash acaba de copiar ksh).
- Idiomas más interpretados en ese momento (principios de los 90):awk,tclal menos, y las herramientas que normalmente se usan desde el shell (cut -f1-3,head -n 3,sort -k1,3,cal 1 2015,comm -1) comienzan en 1.sed,ed,vinumere sus líneas desde 1…
- zsh toma lo mejor de Bourne shell y csh. La matriz de shell de Bourne [email protected]comienza en 1. zsh es consistente con su manejo de[email protected](como en Bourne) o$argv(como en csh). Vea lo confuso que es enkshdonde${@:0:1}no le da el primer parámetro posicional, por ejemplo.
- Un shell es una herramienta de usuario antes de ser un lenguaje de programación. Tiene sentido para la mayoría de los usuarios tener el primero elemento en $a[1]. También significa que el número de elementos es el mismo que el último índice (en zsh como en la mayoría de los otros shells excepto ksh, las matrices no escaso).
- a[1]para el primer elemento es consistente con- a[-1]por lo último.
Entonces, en mi opinión, la pregunta debería ser:¿qué se metió en la cabeza de David Korn para hacer que sus arreglos comiencen en 0?