{"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 class=\"wp-block-paragraph\">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 class=\"wp-block-paragraph\">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 class=\"wp-block-paragraph\">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 class=\"wp-block-paragraph\">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 class=\"wp-block-paragraph\">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 class=\"wp-block-paragraph\">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 class=\"wp-block-paragraph\">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 class=\"wp-block-paragraph\">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 class=\"wp-block-paragraph\">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 class=\"wp-block-paragraph\">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 class=\"wp-block-paragraph\">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 class=\"wp-block-paragraph\">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 class=\"wp-block-paragraph\">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 class=\"wp-block-paragraph\">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 class=\"wp-block-paragraph\">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 class=\"wp-block-paragraph\">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 class=\"wp-block-paragraph\">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 class=\"wp-block-paragraph\">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 class=\"wp-block-paragraph\">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 class=\"wp-block-paragraph\">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 class=\"wp-block-paragraph\">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 class=\"wp-block-paragraph\">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 class=\"wp-block-paragraph\">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 class=\"wp-block-paragraph\">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            <div class=\"protip__heading\">\n                <svg width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\">\n                    <path d=\"M1.49234 23.5024C1.23229 23.5024 0.972242 23.4024 0.782206 23.2123C0.562165 22.9923 0.452144 22.6822 0.502153 22.3722C0.562165 21.9221 1.14227 17.9113 3.00262 16.351C3.63274 15.8209 4.43289 15.5509 5.26305 15.5609C6.09321 15.5909 6.87335 15.9109 7.47347 16.4911C8.6937 17.6913 8.76371 19.6717 7.6435 20.9919C6.0832 22.8523 2.08245 23.4324 1.63237 23.4924C1.59236 23.4924 1.54235 23.4924 1.50234 23.4924L1.49234 23.5024ZM5.16303 17.5613C4.84297 17.5613 4.53291 17.6713 4.29287 17.8813C3.60274 18.4614 3.07264 19.9317 2.75258 21.242C4.06282 20.9219 5.5331 20.3918 6.11321 19.7017C6.55329 19.1716 6.54329 18.3814 6.0832 17.9213C5.85316 17.7013 5.5431 17.5713 5.20304 17.5613C5.19304 17.5613 5.17303 17.5613 5.16303 17.5613ZM11.7243 21.8821C11.4942 21.8821 11.2642 21.8021 11.0841 21.652C10.8541 21.462 10.7241 21.1819 10.7241 20.8819V15.9109L8.08358 13.2705H3.11264C2.81259 13.2705 2.53254 13.1404 2.3425 12.9104C2.15246 12.6803 2.07245 12.3803 2.12246 12.0902C2.19247 11.7102 2.84259 8.36953 4.70294 7.12929C6.33325 6.04909 8.96375 6.49918 10.244 6.80923C11.5442 4.96889 13.2546 3.4286 15.2349 2.33839C17.4553 1.11816 19.9858 0.518051 22.4963 0.498047C23.0464 0.498047 23.4865 0.948132 23.4865 1.49824C23.4865 5.0389 22.3763 9.97983 17.1753 13.7605C17.4853 15.0408 17.9354 17.6613 16.8552 19.2816C15.615 21.1419 12.2744 21.7921 11.8943 21.8621C11.8343 21.8721 11.7743 21.8821 11.7143 21.8821H11.7243ZM12.7245 16.181V19.6016C13.7146 19.2916 14.7948 18.7915 15.2049 18.1814C15.675 17.4812 15.605 16.091 15.385 14.9008C14.5248 15.3808 13.6346 15.8109 12.7245 16.181ZM9.66388 12.0302L11.9643 14.3307C13.1845 13.8306 14.3648 13.2204 15.485 12.5103C19.9358 9.51974 21.2361 5.60901 21.4561 2.53843C19.6157 2.67846 17.8254 3.20856 16.2051 4.09872C14.2847 5.14892 12.6544 6.68921 11.4942 8.54956C10.7841 9.65977 10.174 10.82 9.66388 12.0302ZM4.39289 11.2701H7.81353C8.1936 10.3599 8.63368 9.46974 9.11377 8.60957C7.92355 8.38953 6.51329 8.31952 5.81315 8.78961C5.19304 9.19968 4.70294 10.3099 4.39289 11.2701Z\" fill=\"#673DE6\"\/>\n                <\/svg>\n                <p class=\"protip__title\">\n                    Usando o operador do Bash para outra tarefa                <\/p>\n            <\/div>\n            <p class=\"protip__content\">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\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 class=\"wp-block-paragraph\">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 class=\"wp-block-paragraph\">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 class=\"wp-block-paragraph\">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 class=\"wp-block-paragraph\">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 class=\"wp-block-paragraph\">A sa&iacute;da tamb&eacute;m ser&aacute; <strong>car<\/strong>.<\/p><p class=\"wp-block-paragraph\">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>\n<\/div><p class=\"wp-block-paragraph\">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>\n<\/div><p class=\"wp-block-paragraph\">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 class=\"wp-block-paragraph\">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 class=\"wp-block-paragraph\">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>\n<\/div><p class=\"wp-block-paragraph\">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>\n<\/div><p class=\"wp-block-paragraph\">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>\n<\/div><p class=\"wp-block-paragraph\">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 class=\"wp-block-paragraph\">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 class=\"wp-block-paragraph\">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 class=\"wp-block-paragraph\"><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 class=\"wp-block-paragraph\"> 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>\n<\/div><p class=\"wp-block-paragraph\">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>\n<\/div><p class=\"wp-block-paragraph\">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 class=\"wp-block-paragraph\">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 class=\"wp-block-paragraph\">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>\n<\/div><p class=\"wp-block-paragraph\">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 class=\"wp-block-paragraph\">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 class=\"wp-block-paragraph\">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 class=\"wp-block-paragraph\">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\/w=1024,h=1024,fit=scale-down\" 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":1},{"locale":"pt-BR","link":"https:\/\/www.hostinger.com\/br\/tutoriais\/como-usar-bash-arrays\/","default":0},{"locale":"fr-FR","link":"https:\/\/www.hostinger.com\/fr\/tutoriels\/bash-array\/","default":0},{"locale":"id-ID","link":"https:\/\/www.hostinger.com\/id\/tutorial\/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-GB","link":"https:\/\/www.hostinger.com\/uk\/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-CA","link":"https:\/\/www.hostinger.com\/ca\/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},{"locale":"pt-PT","link":"https:\/\/www.hostinger.com\/pt\/tutoriais\/como-usar-bash-arrays\/","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}]}}