Shell de Linux para crear un método de matriz de secuencia (lista, matriz)

  

Acerca de la definición de matriz de linux y el método de generación, consulte: linux shell serie de matriz generada dinámicamente. Mi punto principal aquí es generar eficientemente cadenas de lista, así como también métodos de matriz.


Primero, el método seq genera:

[shell chengmo @ centos5] $ aNumList = $ (seq 100); [shell chengmo @ centos5] $ echo $ aNumList1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 45 44 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100

aNumList obtiene una cadena, la diferencia está separada por: espacio. En Linux, puede pensarlo como una lista. Se puede leer en for … in loop.


[chengmo @ centos5 shell] $ para i en $ aNumList; haga echo $ i; hecho; 1234 … …


si es necesario Para generar una matriz, solo necesita agregar $ (seq 100) a " () ".

[chengmo @ centos5 ~] $ aNumList = ($ (seq 100)); [chengmo @ centos5 ~] $ echo $ aNumList1 [chengmo @ centos5 ~] $ echo $ {# aNumList [@]} 100

Una matriz de longitud 100.


Segundo, generado por interno {begin..end}

Este método es muy conveniente para generar seq. Esto es hecho por operadores internos.

[chengmo @ centos5 ~] $ echo {1..10} 1 2 3 4 5 6 7 8 9 10

[chengmo @ centos5 ~] $ para un in {1 .. 10}; do echo $ a; done; 12345678910


Tres, comparación de rendimiento

[chengmo @ centos5 ~] $ time echo {1..100} 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 45 44 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100

real 0m0.000suser 0m0.001ssys 0m0.000s


[chengmo @ centos5 ~] $ time echo $ (seq 100) 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 45 44 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100

real 0m0.003suser 0m0.002ssys 0m0.001s



Como puede ver desde arriba, {comience. La velocidad de .end} es mucho más rápida que la llamada de seq. Puede ser considerado como completado por los operadores internos al llamar más tarde.

Copyright © Conocimiento de Windows All Rights Reserved