Contam elementos na expansão de curinga do bash?

5

Eu tenho um loop simples em um dos meus scripts de processamento de dados que se parece com algo assim ...

for f in *.dat; do
  process ${f}
done

Eu gostaria de criar um indicador de status, então gostaria de poder contar o número de elementos em *.dat , mas não consigo encontrar pistas e o Google não é exatamente amigável com isso tipo de pesquisa.

    
por brightwellcd 30.07.2013 / 22:49

1 resposta

9

Com matrizes Bash:

arr=(*.dat)
count=${#arr[@]}

Para quebrar isso, ${arr[@]} fornece todos os elementos da matriz, e # fornece a contagem na expansão do parâmetro (na verdade, ele fornece o tamanho da string, mas para as matrizes é a contagem).

Veja também no Wiki do Bash Hackers:

por 30.07.2013 / 22:56

Tags