He iterado sobre los números en varios orden. Puedo mostrarlos en orden creciente, incluso con pasos como:
$ seq --separator="," 1 10
1,2,3,4,5,6,7,8,9,10
$ seq --separator="," 1 2 10
1,3,5,7,9
También puedo mostrarlos en orden inverso, ni continuo ni paso a paso.
$ seq --separator="," 10 1
$ seq --separator="," 10 2 1
No hay salida para los comandos anteriores.
Los detalles de mi caparazón:
$ bash --version
GNU bash, version 3.2.25(1)-release (x86_64-redhat-linux-gnu)
Copyright (C) 2005 Free Software Foundation, Inc.
Avíseme cómo podría mostrar los números en orden descendente.
command-line
seq
mtk
fuente
fuente

seqes una herramienta completamente no estándar y no hay garantía de que ninguna de las dos implementaciones sea la misma. Si necesita escribir un bucle que itera hacia atrás sobre los números en bash, usefor ((i=$max;i>=0;i--)) …o similares.Respuestas:
usar incremento negativo
fuente
En general, usted no desea utilizar
seq, no es portátil (incluso entre los entornos estándar de Linux). Si estás usando ksh, zsh, o bash4 +, puede utilizar la expansión de llaves:fuente
seqes estándar y luego usas la expansión de llaves solo bash-4. ;)seqno lo hace.Otra forma en puro bash, ksh o zsh:
Una manera pura de POSIX sh:
fuente
forLa segunda expresión debería ser la prueba y la tercera el paso.Ahora, los POSIX estándar:
(Curiosamente, con
mawk(y en menor medidagawktambién) mucho más rápido que GNUseqeni = 10000000lugar dei = 10)O
(solo sería más eficiente con un pequeño número de iteraciones, especialmente con
bash)O
(lo que admitiría números de cualquier tamaño, pero tenga en cuenta que más allá de un cierto número de dígitos (números mayores que 10 70 en la ubicación POSIX al menos), las líneas se incluirán con barras invertidas)
fuente
BC_LINE_LENGTH=0el entorno. No hay tanta suerte en otras implementaciones.s=$s,$io llamarecho -n/echo \c/printf?Puede invertir el orden usando
tac(cat in reverse). Incluso siseqse comportara de manera diferente en varios sistemas, creo que lo siguiente debería ser lo más portátil posible:fuente
Probar con:
Ejemplo:
$ seq 10 -1 1
fuente