GNU/Linux >> Tutoriales Linux >  >> Linux

bash:coloque los archivos de lista en una variable y el tamaño de la matriz sea 1

No está creando una matriz a menos que la rodee con ( ) :

dirlist=(`ls ${prefix}*.text`)

Declarar una matriz de archivos:

arr=(~/myDir/*)

Iterar a través de la matriz usando un contador:

for ((i=0; i < ${#arr[@]}; i++)); do

  # [do something to each element of array]

  echo "${arr[$i]}"
done

esto:

dirlist=`ls ${prefix}*.text`

no hace una matriz. Solo crea una cadena con nombres de archivos separados por espacios.

Tienes que hacer

dirlist=(`ls ${prefix}*.text`)

para convertirlo en una matriz.

Entonces $dirlist hará referencia solo al primer elemento, por lo que debe usar

${dirlist[*]}

para hacer referencia a todos ellos en el ciclo.


Linux
  1. ¿Grep para cadenas múltiples en archivos y luego listar los archivos en orden de tamaño?

  2. Obtener todos los archivos excepto los archivos en matriz:¿Bash?

  3. ¿Recorrer una carpeta y listar archivos?

  4. ¿Cómo enumerar el tamaño de cada archivo y directorio y ordenar por tamaño descendente en Bash?

  5. Bash capturando la salida de awk en una matriz

Declaración Bash declare:sintaxis y ejemplos

Comando Ls en Linux (Lista de archivos y directorios)

¿Cómo enumerar todos los archivos ordenados por tamaño en Linux?

pasar grep a una variable en bash

bash:establece la variable env de la matriz y falla la desreferenciación de cualquier script de shell

¿Qué es exactamente <() en bash (y =() en zsh)?