você está aqui: Home → Colunistas → Cantinho do Shell
Por Júlio Cezar Neves
Data de Publicação: 21 de Janeiro de 2010
Ainda falando do Bash 4.0, eis que ele surge com uma outra novidade: o comando intrínseco (builtin) mapfile, cuja finalidade é jogar um arquivo de texto inteiro para dentro de um vetor, sem loop ou substituição de comando.
— EPA! Isso deve ser muito rápido!
— E é. Faça os teste e comprove!
$ cat frutas abacate maçã morango pera tangerina uva $ mapfile vet < frutas # Mandando frutas para vetor vet $ echo ${vet[@]} # Listando todos elementos de vet abacate maçã morango pera tangerina uva
Obteríamos resultado idêntico se fizéssemos:
$ vet=($(cat frutas))
Porém isso seria mais lento porque a substituição de comando é executada em um subshell.
Uma outra forma de fazer isso que logo vem à cabeça é ler o arquivo com a opção -a
do comando read
. Vamos ver como seria o comportamento disso:
$ read -a vet < frutas $ echo ${vet[@]} abacate
Como deu para perceber, foi lido somente o primeiro registro de frutas.
This policy contains information about your privacy. By posting, you are declaring that you understand this policy:
This policy is subject to change at any time and without notice.
These terms and conditions contain rules about posting comments. By submitting a comment, you are declaring that you agree with these rules:
Failure to comply with these rules may result in being banned from submitting further comments.
These terms and conditions are subject to change at any time and without notice.
Comentários