{"id":33509,"date":"2023-03-15T10:54:56","date_gmt":"2023-03-15T13:54:56","guid":{"rendered":"\/tutoriais\/?p=33509"},"modified":"2025-11-17T17:36:47","modified_gmt":"2025-11-17T20:36:47","slug":"como-usar-bash-arrays","status":"publish","type":"post","link":"\/br\/tutoriais\/como-usar-bash-arrays","title":{"rendered":"Como usar bash arrays em scripts: guia completo"},"content":{"rendered":"<p>Um bash array &eacute; uma estrutura da linguagem Bash que permite agrupar e indexar v&aacute;rios valores, que podem ser strings ou n&uacute;meros. Ele ajuda a trabalhar com grandes quantidades de dados de forma mais eficiente, facilitando tarefas de administra&ccedil;&atilde;o de sistemas UNIX, como armazenar a sa&iacute;da de comandos.<\/p><p>Existem dois tipos principais de bash arrays: indexados e associativos. Nos arrays indexados, cada elemento recebe um &iacute;ndice num&eacute;rico. J&aacute; nos arrays associativos, os &iacute;ndices s&atilde;o strings, e voc&ecirc; precisa declar&aacute;-los explicitamente com o builtin&nbsp;<strong>declare<\/strong>. Fora isso, a sintaxe para trabalhar com ambos &eacute; praticamente a mesma.<\/p><p>Ao usar bash arrays em scripts, &eacute; comum precisar modific&aacute;-los ou utiliz&aacute;-los em diferentes opera&ccedil;&otilde;es, como:<\/p><ul class=\"wp-block-list\">\n<li>Adicionar uma nova vari&aacute;vel a um bash array existente<\/li>\n\n\n\n<li>Referenciar e imprimir um elemento espec&iacute;fico do array<\/li>\n\n\n\n<li>Remover um elemento de um bash array<\/li>\n\n\n\n<li>Percorrer todos os itens de um bash array em um loop<\/li>\n\n\n\n<li>Passar um bash array como argumento para uma fun&ccedil;&atilde;o<\/li>\n<\/ul><p>A seguir, vamos aprofundar o uso de bash arrays em scripts, ver quais opera&ccedil;&otilde;es voc&ecirc; pode fazer com eles e conferir alguns exemplos pr&aacute;ticos.<\/p><p>\n\n\n\n\n\n\n<\/p><h2 class=\"wp-block-heading\" id=\"h-o-que-e-um-bash-array\">O que &eacute; um Bash array?<\/h2><p>Um bash array &eacute; uma estrutura de dados usada para armazenar informa&ccedil;&otilde;es de forma indexada. Em outras palavras, um bash array funciona como um grande conjunto de vari&aacute;veis organizadas em sequ&ecirc;ncia. <\/p><p>Diferente dos arrays tradicionais de outras linguagens de programa&ccedil;&atilde;o, um bash array pode guardar diferentes tipos de elementos ao mesmo tempo. Por exemplo, voc&ecirc; pode usar um bash array para armazenar tanto strings quanto n&uacute;meros.<\/p><p>Importante: o Bash n&atilde;o oferece suporte a arrays multidimensionais, ent&atilde;o n&atilde;o &eacute; poss&iacute;vel criar um array dentro de outro array.<\/p><p>Existem dois tipos de bash arrays: <strong>indexados<\/strong> e <strong>associativos<\/strong>. Um array <strong>indexado<\/strong> usa inteiros (n&uacute;meros) como &iacute;ndice, sendo ideal para organizar dados mais simples. J&aacute; um array <strong>associativo<\/strong> utiliza strings &ndash; conjuntos de caracteres e palavras &ndash; como chave, sendo &oacute;timo para trabalhar com pares chave-valor.<\/p><p>Al&eacute;m do tipo de &iacute;ndice usado como refer&ecirc;ncia, a forma de declarar arrays indexados e associativos em Bash tamb&eacute;m muda um pouco.<\/p><h2 class=\"wp-block-heading\" id=\"h-como-declarar-um-bash-array\"><strong>Como declarar um Bash array?<\/strong><\/h2><p>Declarar um bash array basicamente significa criar o &iacute;ndice e atribuir valores a ele. Voc&ecirc; tamb&eacute;m pode declarar um array de forma expl&iacute;cita usando o builtin <strong>declare<\/strong> do shell com a flag <strong>-a <\/strong>no in&iacute;cio do seu <a href=\"\/br\/tutoriais\/comandos-bash-linux\">script Bash<\/a>, embora isso seja opcional em alguns casos.<\/p><p>Por exemplo, para declarar um array indexado, n&atilde;o &eacute; obrigat&oacute;rio usar o builtin declare. J&aacute; para declarar um array associativo, ele &eacute; necess&aacute;rio. Fora essa diferen&ccedil;a, voc&ecirc; pode declarar ambos os tipos de bash arrays usando praticamente a mesma sintaxe, que vamos explicar a seguir.<\/p><h3 class=\"wp-block-heading\" id=\"h-visao-geral-da-sintaxe\">Vis&atilde;o geral da sintaxe<\/h3><p>A sintaxe b&aacute;sica de um bash array &eacute; parecida com esta:<\/p><pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">#optional for indexed\ndeclare -a IndexedArray\nArray[subscript1]=element1\nArray[subscript2]=element2\nArray[subscript2]=element3<\/pre><p>O&nbsp;<strong>subscript<\/strong>&nbsp;&eacute; a refer&ecirc;ncia aos elementos do array &ndash; em arrays indexados, ele &eacute; um <strong>n&uacute;mero<\/strong>; em arrays associativos, &eacute; uma <strong>string<\/strong>. Veja um exemplo de bash array indexado na pr&aacute;tica:<\/p><pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">#optional for indexed\ndeclare -a IndexedArray\nIndexedArray[0]=car\nIndexedArray[1]=plane\nIndexedArray[2]=bike<\/pre><p>J&aacute; um bash array associativo pode ficar assim:<\/p><pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">declare -a IndexedArray\nAssociativeArray[color]=blue\nAssociativeArray[type]=car\nAssociativeArray[topspeed]=200<\/pre><p>Voc&ecirc; tamb&eacute;m pode declarar bash arrays de forma mais compacta, em uma &uacute;nica linha, usando &iacute;ndices, como nestes exemplos:<\/p><pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">IndexedArray=([0]='car' [1]='plane' [2]='bike')<\/pre><pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">declare -A Associative Array=( [color]=blue [type]=car [topspeed]=200 )<\/pre><p>Repare que, no primeiro exemplo, os elementos do array est&atilde;o entre aspas. Isso &eacute; opcional, mas se torna necess&aacute;rio quando os itens s&atilde;o strings com espa&ccedil;os ou uma string vazia.<\/p><p>No caso espec&iacute;fico de arrays indexados, voc&ecirc; pode omitir o subscript ao escrever tudo em uma s&oacute; linha, porque o Bash atribui automaticamente os &iacute;ndices em ordem crescente:<\/p><pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">IndexedArray=(car plane bike)<\/pre><p>Lembre-se de que a indexa&ccedil;&atilde;o come&ccedil;a em <strong>0<\/strong>. Por isso, no exemplo acima, o elemento&nbsp;<strong>car<\/strong>&nbsp;ser&aacute; armazenado no &iacute;ndice <strong>0<\/strong> do array.<\/p><p>Outra caracter&iacute;stica interessante de bash arrays &eacute; que voc&ecirc; n&atilde;o precisa seguir a sequ&ecirc;ncia exata dos &iacute;ndices. Por exemplo, &eacute; poss&iacute;vel declarar apenas o primeiro e o terceiro elementos e deixar o segundo vazio:<\/p><pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">IndexedArray[0]=car\nIndexedArray[2]=bike<\/pre><p>Agora que voc&ecirc; j&aacute; sabe como declarar um array, vamos ver quais opera&ccedil;&otilde;es pode usar para manipular bash arrays na pr&aacute;tica.<\/p><h2 class=\"wp-block-heading\" id=\"h-como-adicionar-uma-variavel-a-um-bash-array\"><strong>Como adicionar uma vari&aacute;vel a um Bash Array<\/strong><\/h2><p>As <a href=\"https:\/\/www.hostinger.com\/tutorials\/bash-variables\" target=\"_blank\" rel=\"noreferrer noopener\"><strong>vari&aacute;veis de bash<\/strong><\/a> podem ser facilmente adicionadas usando o operador <strong>+=<\/strong>.  A sintaxe &eacute; essa:<\/p><pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">ArrayName+=(element-to-add)<\/pre><p>Por exemplo, o processo para um array indexado ficaria assim:<\/p><pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">IndexedArray=(car plane bike)\nIndexedArray=(car plane bike)<\/pre><p>O array indexado agora tem um novo elemento. Lembre-se que esse m&eacute;todo se anexa ao final de um array. Portanto, o elemento <strong>motorcycle<\/strong> ser&aacute; adicionado como &uacute;ltimo elemento.<\/p><p>Para arrays associativos, o processo &eacute; bem parecido. A diferen&ccedil;a &eacute; que &eacute; preciso especificar as chaves com todos os elementos.<\/p><pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">declare -A AssociativeArray\nAssociativeArray[color]=blue\nAssociativeArray+=([tires]=alloy [engine]=gasoline)<\/pre><p>\n\n\n<div class=\"protip\">\n                    <h4 class=\"title\">Usando o operador do Bash para outra tarefa<\/h4>\n                    <p>Al&eacute;m de adicionar novos itens a um bash array, o operador&nbsp;<strong>+=<\/strong>&nbsp;tamb&eacute;m permite <a href=\"\/br\/tutoriais\/como-concatenar-strings-no-bash\">concatenar strings no seu script Bash<\/a>.<\/p>\n                <\/div>\n\n\n\n<\/p><h2 class=\"wp-block-heading\" id=\"h-como-referenciar-e-imprimir-um-elemento-bash-array\"><strong>Como referenciar e imprimir um elemento Bash array<\/strong><\/h2><p>Os usu&aacute;rios podem referenciar os valores dos bash arrays usando o &iacute;ndice ou a chave do elemento. Para isso, basta criar um array indexado:<\/p><pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">IndexedArray=(car plane bike)<\/pre><p>Para referenciar a primeira vari&aacute;vel de array, utilize a sintaxe abaixo:<\/p><pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">${IndexedArray[0]}<\/pre><p>Combine a sintaxe com <strong>echo<\/strong> e voc&ecirc; ter&aacute; o seguinte resultado:<\/p><pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">echo ${IndexedArray[0]}<\/pre><p>A sa&iacute;da (output) te mostrar&aacute; o primeiro elemento. Neste caso, o primeiro elemento &eacute; <strong>car<\/strong>. A mesma l&oacute;gica se aplica ao referenciar e imprimir um array associativo:<\/p><pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">declare -A AssociativeArray=( [color]=blue [type]=car [topspeed]=200 )\necho ${AssociativeArray[type]}<\/pre><p>A sa&iacute;da tamb&eacute;m ser&aacute; <strong>car<\/strong>.<\/p><p>Para imprimir todo o array, usamos <strong>@<\/strong> como um &iacute;ndice. O script completo fica assim:<\/p><div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full\"><img decoding=\"async\" width=\"579\" height=\"218\" src=\"https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/53\/2023\/03\/image-1.png\/public\" alt=\"Script de bash para criar e imprimir um array indexado.\" class=\"wp-image-33519\" srcset=\"https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/53\/2023\/03\/image-1.png\/w=579,fit=scale-down 579w, https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/53\/2023\/03\/image-1.png\/w=300,fit=scale-down 300w, https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/53\/2023\/03\/image-1.png\/w=150,fit=scale-down 150w\" sizes=\"(max-width: 579px) 100vw, 579px\" \/><\/figure><\/div><p>Voc&ecirc; tamb&eacute;m pode imprimir apenas as chaves de um array. Para isso, basta adicionar um ponto de exclama&ccedil;&atilde;o antes do nome do array:<\/p><div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full\"><img decoding=\"async\" width=\"662\" height=\"222\" src=\"https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/53\/2023\/03\/image-2.png\/public\" alt=\"Script de linha de comando para imprimir todas as chaves de um array associativo. Para imprimir todos os valores, somente o ponto de exclama&ccedil;&atilde;o precisa ser removido.\" class=\"wp-image-33520\" srcset=\"https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/53\/2023\/03\/image-2.png\/w=662,fit=scale-down 662w, https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/53\/2023\/03\/image-2.png\/w=300,fit=scale-down 300w, https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/53\/2023\/03\/image-2.png\/w=150,fit=scale-down 150w\" sizes=\"(max-width: 662px) 100vw, 662px\" \/><\/figure><\/div><p>Imprimir um elemento de um bash array &eacute; muito &uacute;til para revisar o script antes de pass&aacute;-lo para outros comandos ou fun&ccedil;&otilde;es &ndash; assim voc&ecirc; confirma que est&aacute; trabalhando com os dados corretos.<\/p><h2 class=\"wp-block-heading\" id=\"h-como-remover-os-elementos-de-bash-arrays\"><strong>Como remover os elementos de Bash arrays<\/strong><\/h2><p>O processo de apagar os elementos de array &eacute; parecido com o de referenci&aacute;-los. Usamos um indicador ou uma chave combinada com o comando interno <strong>unset<\/strong> para remover um elemento de array.<\/p><pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">unset ArrayName[index-or-key]<\/pre><p>Veja abaixo um exemplo de remo&ccedil;&atilde;o de um &uacute;nico elemento do array indexado:<\/p><div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full\"><img decoding=\"async\" width=\"425\" height=\"217\" src=\"https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/53\/2023\/03\/image-3.png\/public\" alt=\"Script de bash para mostrar o comando unset que &eacute; usado para apagar elementos de um array\" class=\"wp-image-33521\" srcset=\"https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/53\/2023\/03\/image-3.png\/w=425,fit=scale-down 425w, https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/53\/2023\/03\/image-3.png\/w=300,fit=scale-down 300w, https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/53\/2023\/03\/image-3.png\/w=150,fit=scale-down 150w\" sizes=\"(max-width: 425px) 100vw, 425px\" \/><\/figure><\/div><p>Uma l&oacute;gica parecida se aplica aos arrays associativos:<\/p><div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full\"><img decoding=\"async\" width=\"655\" height=\"191\" src=\"https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/53\/2023\/03\/image-4.png\/public\" alt=\"Script de bash Bash exibindo o comando unset para arrays associativos, usado para remover um elemento de um array\" class=\"wp-image-33522\" srcset=\"https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/53\/2023\/03\/image-4.png\/w=655,fit=scale-down 655w, https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/53\/2023\/03\/image-4.png\/w=300,fit=scale-down 300w, https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/53\/2023\/03\/image-4.png\/w=150,fit=scale-down 150w\" sizes=\"(max-width: 655px) 100vw, 655px\" \/><\/figure><\/div><p>Para apagar um array inteiro, especifique <strong>unset<\/strong> com o nome do array, como mostramos a seguir:<\/p><div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full\"><img decoding=\"async\" width=\"657\" height=\"207\" src=\"https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/53\/2023\/03\/image-5.png\/public\" alt=\"Script de shell para apagar o array por completo.\" class=\"wp-image-33523\" srcset=\"https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/53\/2023\/03\/image-5.png\/w=657,fit=scale-down 657w, https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/53\/2023\/03\/image-5.png\/w=300,fit=scale-down 300w, https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/53\/2023\/03\/image-5.png\/w=150,fit=scale-down 150w\" sizes=\"(max-width: 657px) 100vw, 657px\" \/><\/figure><\/div><p>Nada &eacute; exibido ap&oacute;s tentarmos imprimir os elementos de array porque o comando <strong>unset<\/strong> os apagou. Al&eacute;m disso, essa a&ccedil;&atilde;o tamb&eacute;m apaga completamente o &iacute;ndice do seu array. Por exemplo, se voc&ecirc; der unset em&nbsp;<strong>1<\/strong>&nbsp;no array abaixo, apenas os &iacute;ndices <strong>0<\/strong> e <strong>2<\/strong> continuam existindo:<\/p><pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">IndexedArray=([0]='car' [1]='plane' [2]='bike')<\/pre><p>Se voc&ecirc; usar&nbsp;unset&nbsp;em um &iacute;ndice ou chave que n&atilde;o existe, o bash array n&atilde;o ser&aacute; alterado. Voc&ecirc; tamb&eacute;m n&atilde;o ver&aacute; nenhuma mensagem de erro, pois a opera&ccedil;&atilde;o &eacute; conclu&iacute;da silenciosamente.<\/p><p>Remover itens de bash arrays &eacute; algo comum quando voc&ecirc; trabalha com dados din&acirc;micos, como logs. &Agrave; medida que o script cresce, pode ser interessante apagar elementos que n&atilde;o s&atilde;o mais usados para deixar o array (e o c&oacute;digo) mais organizado.<\/p><h2 class=\"wp-block-heading\" id=\"h-como-percorrer-um-array\"><strong>Como Percorrer um Array<\/strong><\/h2><p><a href=\"\/br\/tutoriais\/bash-for-loop-guia\/\" target=\"_blank\" rel=\"noreferrer noopener\"><strong>Criar loops de bash<\/strong><\/a> &eacute; um aspecto fundamental para aprender o b&aacute;sico dos comandos bash. Voc&ecirc; tamb&eacute;m pode usar loops com arrays; basta usar a sintaxe abaixo:<\/p><pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">for i in \"${Array[@]}\"; do action; done<\/pre><p> Por exemplo, o caso de uso mais comum &eacute; a itera&ccedil;&atilde;o sobre cada item do array:<\/p><div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full\"><img decoding=\"async\" width=\"659\" height=\"231\" src=\"https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/53\/2023\/03\/image-6.png\/public\" alt=\"Script de shell com o comando for loop para iterar e imprimir um array\" class=\"wp-image-33524\" srcset=\"https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/53\/2023\/03\/image-6.png\/w=659,fit=scale-down 659w, https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/53\/2023\/03\/image-6.png\/w=300,fit=scale-down 300w, https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/53\/2023\/03\/image-6.png\/w=150,fit=scale-down 150w\" sizes=\"(max-width: 659px) 100vw, 659px\" \/><\/figure><\/div><p>Voc&ecirc; tamb&eacute;m pode combinar chaves com elementos de array e imprimi-los juntos, como no exemplo abaixo:<\/p><div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full\"><img decoding=\"async\" width=\"797\" height=\"234\" src=\"https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/53\/2023\/03\/image-7.png\/public\" alt=\"Script de linha de comando para imprimir elementos e chaves para um arrau associativo.\" class=\"wp-image-33525\" srcset=\"https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/53\/2023\/03\/image-7.png\/w=797,fit=scale-down 797w, https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/53\/2023\/03\/image-7.png\/w=300,fit=scale-down 300w, https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/53\/2023\/03\/image-7.png\/w=150,fit=scale-down 150w, https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/53\/2023\/03\/image-7.png\/w=768,fit=scale-down 768w\" sizes=\"(max-width: 797px) 100vw, 797px\" \/><\/figure><\/div><p>Percorrer um bash array em um loop &eacute; muito &uacute;til para automatizar tarefas que envolvem muitos dados. Por exemplo, voc&ecirc; pode renomear v&aacute;rios arquivos de uma vez passando-os para o comando&nbsp;<strong>mv<\/strong>&nbsp;ou instalar m&uacute;ltiplos pacotes de uma s&oacute; vez usando o gerenciador de pacotes do sistema.<\/p><h2 class=\"wp-block-heading\" id=\"h-como-passar-um-bash-array-para-uma-funcao\"><strong>Como passar um Bash array para uma fun&ccedil;&atilde;o<\/strong><\/h2><p>As fun&ccedil;&otilde;es poupam um tempo consider&aacute;vel na elabora&ccedil;&atilde;o de scripts. Em vez de escrevermos o mesmo c&oacute;digo v&aacute;rias vezes, podemos chamar uma fun&ccedil;&atilde;o que j&aacute; foi escrita. Vamos combinar o loop de itera&ccedil;&atilde;o mencionado anteriormente e criaremos uma fun&ccedil;&atilde;o a partir dele:<\/p><pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">function Iteration\n{\nm=${#IndexedArray[@]}\nfor (( i=0; i&amp;lt;m; i++ ))\ndo\necho ${IndexedArray[$i]}\ndone\n}\nIndexedArray=(car bike plane)\nIteration ${IndexedArray[@]}<\/pre><p>Ao execut&aacute;-lo em uma linha de comando, voc&ecirc; ter&aacute; o seguinte resultado:<\/p><div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full\"><img decoding=\"async\" width=\"477\" height=\"417\" src=\"https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/53\/2023\/03\/image-8.png\/public\" alt=\"Fun&ccedil;&atilde;o bash para itera&ccedil;&atilde;o de array\" class=\"wp-image-33526\" srcset=\"https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/53\/2023\/03\/image-8.png\/w=477,fit=scale-down 477w, https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/53\/2023\/03\/image-8.png\/w=300,fit=scale-down 300w, https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/53\/2023\/03\/image-8.png\/w=150,fit=scale-down 150w\" sizes=\"(max-width: 477px) 100vw, 477px\" \/><\/figure><\/div><p>Incorporar fun&ccedil;&otilde;es ao trabalhar com bash arrays em scripts ajuda a lidar com tarefas mais complexas que envolvem muitos dados, como analisar sa&iacute;das de comandos ou filtrar logs. Geralmente, isso &eacute; feito em conjunto com um loop, que percorre os elementos do array para processar cada item passo a passo.<\/p><h2 class=\"wp-block-heading\" id=\"h-principais-pontos\"><strong>Principais pontos<\/strong><\/h2><p>Bash arrays ajudam voc&ecirc; a trabalhar com grandes quantidades de dados de forma muito mais eficiente, algo essencial ao administrar um sistema tipo UNIX, como um VPS Linux. Na pr&aacute;tica, bash arrays s&atilde;o muito usados para passar valores para comandos, fun&ccedil;&otilde;es ou loops.<\/p><p>Como o uso de bash arrays com fun&ccedil;&otilde;es, loops e comandos varia bastante conforme a tarefa, vale a pena explorar o recurso com mais calma.<\/p><p>Para aprofundar ainda mais o seu conhecimento sobre bash arrays, experimente criar um script que fa&ccedil;a o index e o loop de arquivos para executar uma tarefa autom&aacute;tica, como renome&aacute;-los em lote. Voc&ecirc; pode fazer isso no seu pr&oacute;prio computador com Linux ou montar um ambiente de testes em um <a href=\"\/br\/servidor-vps\">VPS da Hostinger<\/a>.<\/p><figure class=\"wp-block-image size-large\"><a href=\"\/br\/servidor-vps\" target=\"_blank\" rel=\"noreferrer noopener\"><img decoding=\"async\" width=\"1024\" height=\"300\" src=\"https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/53\/2023\/02\/BR-VPS-hosting_in-text-banner-1.png\/public\" alt=\"\" class=\"wp-image-32923\" srcset=\"https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/53\/2023\/02\/BR-VPS-hosting_in-text-banner-1.png\/w=1024,fit=scale-down 1024w, https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/53\/2023\/02\/BR-VPS-hosting_in-text-banner-1.png\/w=300,fit=scale-down 300w, https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/53\/2023\/02\/BR-VPS-hosting_in-text-banner-1.png\/w=150,fit=scale-down 150w, https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/53\/2023\/02\/BR-VPS-hosting_in-text-banner-1.png\/w=768,fit=scale-down 768w, https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/53\/2023\/02\/BR-VPS-hosting_in-text-banner-1.png\/w=1536,fit=scale-down 1536w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><\/a><\/figure>\n","protected":false},"excerpt":{"rendered":"<p>Um bash array &eacute; uma estrutura da linguagem Bash que permite agrupar e indexar v&aacute;rios valores, que podem ser strings ou n&uacute;meros. Ele ajuda a trabalhar com grandes quantidades de dados de forma mais eficiente, facilitando tarefas de administra&ccedil;&atilde;o de sistemas UNIX, como armazenar a sa&iacute;da de comandos. Existem dois tipos principais de bash arrays: [&#8230;]<\/p>\n<p><a class=\"btn btn-secondary understrap-read-more-link\" href=\"\/br\/tutoriais\/como-usar-bash-arrays\">Read More&#8230;<\/a><\/p>\n","protected":false},"author":356,"featured_media":33530,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"rank_math_title":"","rank_math_description":"Neste tutorial trazemos os tipos de bash arrays e exemplos de uso para facilitar o gerenciamento do seu servidor VPS ou f\u00edsico em Linux.","rank_math_focus_keyword":"Bash Arrays","footnotes":""},"categories":[4915],"tags":[6401,6096,5113],"class_list":["post-33509","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-vps","tag-comandos-bash","tag-hospedagem-vps","tag-servidor-vps"],"hreflangs":[{"locale":"en-US","link":"https:\/\/www.hostinger.com\/tutorials\/how-to-use-bash-array","default":0},{"locale":"pt-BR","link":"https:\/\/www.hostinger.com\/br\/tutoriais\/como-usar-bash-arrays","default":0},{"locale":"pt-PT","link":"https:\/\/www.hostinger.com\/pt\/tutoriais\/como-usar-bash-arrays","default":0},{"locale":"en-CA","link":"https:\/\/www.hostinger.com\/ca\/tutorials\/how-to-use-bash-array","default":0},{"locale":"en-UK","link":"https:\/\/www.hostinger.com\/uk\/tutorials\/how-to-use-bash-array","default":0},{"locale":"en-PH","link":"https:\/\/www.hostinger.com\/ph\/tutorials\/how-to-use-bash-array","default":0},{"locale":"en-MY","link":"https:\/\/www.hostinger.com\/my\/tutorials\/how-to-use-bash-array","default":0},{"locale":"en-IN","link":"https:\/\/www.hostinger.com\/in\/tutorials\/how-to-use-bash-array","default":0},{"locale":"en-AU","link":"https:\/\/www.hostinger.com\/au\/tutorials\/how-to-use-bash-array","default":0},{"locale":"en-NG","link":"https:\/\/www.hostinger.com\/ng\/tutorials\/how-to-use-bash-array","default":0}],"acf":[],"_links":{"self":[{"href":"https:\/\/www.hostinger.com\/br\/tutoriais\/wp-json\/wp\/v2\/posts\/33509","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.hostinger.com\/br\/tutoriais\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.hostinger.com\/br\/tutoriais\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.hostinger.com\/br\/tutoriais\/wp-json\/wp\/v2\/users\/356"}],"replies":[{"embeddable":true,"href":"https:\/\/www.hostinger.com\/br\/tutoriais\/wp-json\/wp\/v2\/comments?post=33509"}],"version-history":[{"count":14,"href":"https:\/\/www.hostinger.com\/br\/tutoriais\/wp-json\/wp\/v2\/posts\/33509\/revisions"}],"predecessor-version":[{"id":51418,"href":"https:\/\/www.hostinger.com\/br\/tutoriais\/wp-json\/wp\/v2\/posts\/33509\/revisions\/51418"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.hostinger.com\/br\/tutoriais\/wp-json\/wp\/v2\/media\/33530"}],"wp:attachment":[{"href":"https:\/\/www.hostinger.com\/br\/tutoriais\/wp-json\/wp\/v2\/media?parent=33509"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.hostinger.com\/br\/tutoriais\/wp-json\/wp\/v2\/categories?post=33509"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.hostinger.com\/br\/tutoriais\/wp-json\/wp\/v2\/tags?post=33509"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}