{"id":15247,"date":"2019-03-19T15:23:34","date_gmt":"2019-03-19T18:23:34","guid":{"rendered":"https:\/\/blog.hostinger.io\/br-tutoriais\/?p=15247"},"modified":"2026-05-21T12:28:46","modified_gmt":"2026-05-21T05:28:46","slug":"bash-for-loop-guia","status":"publish","type":"post","link":"\/br\/tutoriais\/bash-for-loop-guia\/","title":{"rendered":"Como usar o comando bash for loop: sintaxe e exemplos"},"content":{"rendered":"<p class=\"wp-block-paragraph\">O <strong>Bash for loop<\/strong> &eacute; um comando da linguagem Bash que permite executar um trecho de c&oacute;digo v&aacute;rias vezes de forma autom&aacute;tica. Ele &eacute; muito &uacute;til para lidar com tarefas repetitivas, tornando a administra&ccedil;&atilde;o do sistema mais r&aacute;pida e eficiente.<\/p><p class=\"wp-block-paragraph\">Na pr&aacute;tica, o Bash for loop funciona atribuindo os itens de uma lista a uma vari&aacute;vel e executando um ou mais comandos para cada um desses itens. A sintaxe b&aacute;sica &eacute; a seguinte:<\/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 VARIAVEL in 1 2 3 4 5 .. N\nExecute o comando abaixo:\n   comando1\n   comando2\n   comandoN\ndone<\/pre><p class=\"wp-block-paragraph\">No dia a dia, o bash for loop pode ser aplicado em diferentes situa&ccedil;&otilde;es e combinado com outros conceitos de programa&ccedil;&atilde;o. &Eacute; poss&iacute;vel, por exemplo, criar um loop com tr&ecirc;s express&otilde;es, um loop infinito, ou at&eacute; definir sequ&ecirc;ncias que come&ccedil;am e param em um ponto espec&iacute;fico.<\/p><p class=\"wp-block-paragraph\">Continue a leitura para entender melhor como usar o Bash for loop e conferir exemplos pr&aacute;ticos.<\/p><p>\n\n\n\n\n\n\n<\/p><h2 class=\"wp-block-heading\" id=\"h-o-que-e-bash-for-loop\">O que &eacute; Bash for loop?<\/h2><p class=\"wp-block-paragraph\">Um&nbsp;Bash for loop&nbsp;&eacute; uma constru&ccedil;&atilde;o que permite executar um conjunto de comandos repetidamente sobre v&aacute;rios itens com apenas uma execu&ccedil;&atilde;o. Ele &eacute; especialmente &uacute;til para automatizar tarefas repetitivas em sistemas baseados em linha de comando, como um <a href=\"\/br\/servidor-vps\">servidor virtual privado (VPS) Linux<\/a> &mdash; por exemplo, renomear v&aacute;rios arquivos de uma s&oacute; vez.<\/p><p class=\"wp-block-paragraph\">A l&oacute;gica por tr&aacute;s de um Bash for loop funciona assim: um conjunto de comandos continua sendo executado em loop para cada item listado em uma vari&aacute;vel. O processo termina apenas depois que o &uacute;ltimo item &eacute; processado.<\/p><p class=\"wp-block-paragraph\">De forma simples, &eacute; como dizer:&nbsp;<strong>para (for)<\/strong> cada item atribu&iacute;do &agrave; vari&aacute;vel, <strong>repita (loop)<\/strong> o mesmo conjunto de comandos. No entanto, tamb&eacute;m &eacute; poss&iacute;vel usar declara&ccedil;&otilde;es condicionais para modificar a forma como o loop ser&aacute; executado.<\/p><p class=\"wp-block-paragraph\">Na pr&oacute;xima se&ccedil;&atilde;o, vamos analisar a sintaxe de um Bash for loop linha por linha para entender melhor como ele funciona.<\/p><h2 class=\"wp-block-heading\" id=\"h-qual-e-a-sintaxe-de-um-bash-for-loop\"><b>Qual &eacute; a sintaxe de um Bash for loop?<\/b><\/h2><p class=\"wp-block-paragraph\">O&nbsp;Bash for loop&nbsp;executa um conjunto de comandos repetidamente, percorrendo uma sequ&ecirc;ncia de valores ou itens. A sintaxe b&aacute;sica &eacute; a seguinte:<\/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 VARIAVEL in 1 2 3 4 5 .. N\nExecute o comando abaixo:\n   comando1\n   comando2\n   comandoN\ndone<\/pre><p class=\"wp-block-paragraph\">No mundo real, esta sintaxe ficaria parecida com o exemplo 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=\"\">#!\/bin\/bash\nfor i in 1 2 3 4 5\ndo\necho \"Hello $i\"\ndone<\/pre><p class=\"wp-block-paragraph\">Executar o arquivo bash ir&aacute; gerar o seguinte texto:<\/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=\"\">Hello 1\nHello 2\nHello 3\nHello 4 \nHello 5<\/pre><p class=\"wp-block-paragraph\">Vamos inspecionar cada elemento:<\/p><ul class=\"wp-block-list\">\n<li><b>#!\/bin\/bash &ndash;<\/b> mostra que &eacute; c&oacute;digo &eacute; um script bash.<\/li>\n\n\n\n<li><b>i<\/b> &ndash; &eacute; uma marca&ccedil;&atilde;o para uma vari&aacute;vel. Enquanto que $i &eacute; o valor individual da vari&aacute;vel. Voc&ecirc; tamb&eacute;m pode escrev&ecirc;-lo como <b>c\/$c<\/b> ou outro nome.<\/li>\n\n\n\n<li><b>in<\/b> &ndash; separa a vari&aacute;vel e os itens que seguem.<\/li>\n\n\n\n<li><b>1 2 3 4 5<\/b> &ndash; &nbsp;&eacute; um exemplo de itens que voc&ecirc; quer basear a instru&ccedil;&atilde;o.<\/li>\n\n\n\n<li><b>do <\/b>&ndash; &eacute; a palavra chave que inicia os loops. Ele, ent&atilde;o, ir&aacute; executar a instru&ccedil;&atilde;o n vezes, sendo n o n&uacute;mero total de itens. Aqui, o valor de n &eacute; 5.<\/li>\n\n\n\n<li><b>echo &ldquo;Hello: $i&rdquo;<\/b> &ndash; &eacute; o <a href=\"\/br\/tutoriais\/comandos-linux\/\">comando Linux<\/a> ou opera&ccedil;&atilde;o que ser&aacute; repetido n vezes. Lembre-se que aspas transformam qualquer coisa em uma vari&aacute;vel.<\/li>\n\n\n\n<li><b>done<\/b> &ndash; encerra o loop.<\/li>\n<\/ul><p class=\"wp-block-paragraph\">Al&eacute;m da sintaxe acima, h&aacute; outras duas varia&ccedil;&otilde;es comuns:<\/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 VARIAVEL in file1 file2 file3\ndo\n   comando1 em $VARIAVEL\n   comando2\n   comandoN\ndone<\/pre><p class=\"wp-block-paragraph\">E tamb&eacute;m:<\/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 OUTPUT in $(Linux-Or-Unix-Command-Here)\ndo\n   comando1 em $OUTPUT\n   comando2 em $OUTPUT\n   comandoN em $OUTPUT\ndone<\/pre><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><p class=\"wp-block-paragraph\">Agora que entendemos a sintaxe do Bash for loop, vamos ver exemplos pr&aacute;ticos de como esses scripts s&atilde;o aplicados no dia a dia.<\/p><h2 class=\"wp-block-heading\" id=\"h-exemplos-de-bash-for-loop\">Exemplos de Bash for loop<\/h2><p class=\"wp-block-paragraph\">A seguir, alguns exemplos de Bash for loop usados para executar v&aacute;rias opera&ccedil;&otilde;es de forma autom&aacute;tica. Para acompanhar os testes, primeiro voc&ecirc; precisar&aacute; acessar seu VPS. Caso tenha dificuldades, confira nosso tutorial sobre <a href=\"\/br\/tutoriais\/como-se-conectar-servidor-vps-usando-terminal-ssh\/\">como usar o PuTTY para SSH<\/a>.<\/p><p class=\"wp-block-paragraph\">Se voc&ecirc; ainda n&atilde;o tem familiaridade com Bash, recomendamos tamb&eacute;m nosso guia sobre <a href=\"\/br\/tutoriais\/comandos-bash-linux\/\">bash scripting<\/a>. Lembre-se de que fun&ccedil;&otilde;es Bash precisam estar em um arquivo com extens&atilde;o .sh. Para criar um, use o comando abaixo no terminal:<\/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=\"\">vim NomeArquivo.sh<\/pre><p class=\"wp-block-paragraph\">Isto ir&aacute; criar um arquivo .sh, e ir&aacute; abri-lo com o editor VIM. Para aprender mais sobre isso, n&atilde;o deixe de conferir o guia b&aacute;sico mencionado acima.<\/p><h3 class=\"wp-block-heading\" id=\"h-como-usar-um-bash-for-loop-com-numeros\">Como usar um Bash for loop com n&uacute;meros<\/h3><p class=\"wp-block-paragraph\">Um Bash for loop com n&uacute;meros permite iterar por um intervalo sem precisar especificar cada item individualmente. Para isso, basta usar chaves {} com dois pontos duplos para indicar o intervalo.<\/p><p class=\"wp-block-paragraph\">Por exemplo, o loop abaixo imprime os n&uacute;meros de 1 a 5:<\/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 {1..5}\ndo\n  echo \"$i\"\ndone<\/pre><p class=\"wp-block-paragraph\">Tamb&eacute;m &eacute; poss&iacute;vel definir um incremento usando a sintaxe de tr&ecirc;s express&otilde;es <strong>{INICIO..FIM..INCREMENTO}<\/strong>. Veja o exemplo:<\/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 {1..10..2}\ndo\n  echo \"N&uacute;mero: $i\"\ndone<\/pre><p>\n\n\n<div class=\"announcement-block announcement-block--important\">\n            <span class=\"announcement-block__heading\">\n                <svg width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\">\n                    <path fill-rule=\"evenodd\" clip-rule=\"evenodd\"\n                          d=\"M12 22.5C17.799 22.5 22.5 17.799 22.5 12C22.5 6.20101 17.799 1.5 12 1.5C6.20101 1.5 1.5 6.20101 1.5 12C1.5 17.799 6.20101 22.5 12 22.5ZM13.637 7.65198C13.637 6.74791 12.9041 6.01501 12 6.01501C11.0959 6.01501 10.363 6.74791 10.363 7.65198C10.5335 9.53749 10.875 13.383 10.875 13.383C10.875 14.0043 11.3787 14.508 12 14.508C12.6213 14.508 13.125 14.0043 13.125 13.383V13.38L13.637 7.65198ZM11.9927 15.714C11.3714 15.714 10.8677 16.2177 10.8677 16.839C10.8677 17.4603 11.3714 17.964 11.9927 17.964H12.0073C12.6286 17.964 13.1323 17.4603 13.1323 16.839C13.1323 16.2177 12.6286 15.714 12.0073 15.714H11.9927Z\"\n                          fill=\"#FEA419\"\/>\n                <\/svg>\n                Important\n            <\/span>\n            <p class=\"announcement-block__content\">\n                <strong>Importante! <\/strong>Em alguns scripts, a sintaxe de incremento pode aparecer com par&ecirc;nteses duplos em vez de chaves, mas a fun&ccedil;&atilde;o &eacute; a mesma.\n            <\/p><\/div>\n\n\n\n<\/p><p class=\"wp-block-paragraph\">No exemplo acima, o loop come&ccedil;a no valor 1, soma 2 a cada itera&ccedil;&atilde;o (1, 3, 5, 7, 9) e para quando atinge o valor final definido, que &eacute; 10. A sa&iacute;da ser&aacute;:<\/p><div class=\"wp-block-image\">\n<figure data-wp-context='{\"imageId\":\"6a6ea18ce8c8e\"}' data-wp-interactive=\"core\/image\" data-wp-key=\"6a6ea18ce8c8e\" class=\"aligncenter size-full wp-lightbox-container\"><img decoding=\"async\" width=\"807\" height=\"138\" data-wp-class--hide=\"state.isContentHidden\" data-wp-class--show=\"state.isContentVisible\" data-wp-init=\"callbacks.setButtonStyles\" data-wp-on--click=\"actions.showLightbox\" data-wp-on--load=\"callbacks.setButtonStyles\" data-wp-on--pointerdown=\"actions.preloadImage\" data-wp-on--pointerenter=\"actions.preloadImageWithDelay\" data-wp-on--pointerleave=\"actions.cancelPreload\" data-wp-on-window--resize=\"callbacks.setButtonStyles\" src=\"https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/53\/2019\/03\/bash-loop-with-increment-output.png\/public\" alt=\"exemplo de sa&iacute;da de comando bash for loop com incrementos\" class=\"wp-image-51268\" srcset=\"https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/53\/2019\/03\/bash-loop-with-increment-output.png\/w=807,fit=scale-down 807w, https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/53\/2019\/03\/bash-loop-with-increment-output.png\/w=300,fit=scale-down 300w, https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/53\/2019\/03\/bash-loop-with-increment-output.png\/w=150,fit=scale-down 150w, https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/53\/2019\/03\/bash-loop-with-increment-output.png\/w=768,fit=scale-down 768w\" sizes=\"(max-width: 807px) 100vw, 807px\" \/><button class=\"lightbox-trigger\" type=\"button\" aria-haspopup=\"dialog\" data-wp-bind--aria-label=\"state.thisImage.triggerButtonAriaLabel\" data-wp-init=\"callbacks.initTriggerButton\" data-wp-on--click=\"actions.showLightbox\" data-wp-style--right=\"state.thisImage.buttonRight\" data-wp-style--top=\"state.thisImage.buttonTop\">\n\t\t\t<svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"12\" height=\"12\" fill=\"none\" viewbox=\"0 0 12 12\">\n\t\t\t\t<path fill=\"#fff\" d=\"M2 0a2 2 0 0 0-2 2v2h1.5V2a.5.5 0 0 1 .5-.5h2V0H2Zm2 10.5H2a.5.5 0 0 1-.5-.5V8H0v2a2 2 0 0 0 2 2h2v-1.5ZM8 12v-1.5h2a.5.5 0 0 0 .5-.5V8H12v2a2 2 0 0 1-2 2H8Zm2-12a2 2 0 0 1 2 2v2h-1.5V2a.5.5 0 0 0-.5-.5H8V0h2Z\"><\/path>\n\t\t\t<\/svg>\n\t\t<\/button><\/figure>\n<\/div><p class=\"wp-block-paragraph\">Tenha em mente o recurso de intervalos {1..5} est&aacute; dispon&iacute;vel a partir da vers&atilde;o <strong>3.0 do Bash<\/strong>. J&aacute; a sintaxe com incremento {1..10..2} s&oacute; &eacute; suportada a partir da <strong>vers&atilde;o 4.0<\/strong>.<\/p><h3 class=\"wp-block-heading\" id=\"h-como-usar-um-bash-for-loop-com-elementos-de-array\">Como usar um Bash for loop com elementos de array<\/h3><p class=\"wp-block-paragraph\">Combinar um Bash for loop com arrays permite iterar sobre elementos agrupados e executar um conjunto de comandos para cada um deles. Em vez de usar uma lista solta de itens, trabalhar com arrays deixa o script mais organizado e f&aacute;cil de ler &mdash; especialmente quando voc&ecirc; precisa lidar com muitos valores.<\/p><p class=\"wp-block-paragraph\">Para usar um Bash for loop com array, primeiro declare o array com os itens desejados. Em seguida, adicione-o &agrave; express&atilde;o <strong>for-in<\/strong>, como no exemplo 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=\"\"># Declarar um array de itens\narray=(\"item1\" \"item2\" \"item3\" \"item4\")\n\n# Iterar pelo array e aplicar comandos\nfor item in \"${array[@]}\"\ndo\n   comando1\n   comando2\n   comando3\ndone<\/pre><p class=\"wp-block-paragraph\">Aqui est&aacute; um exemplo de Bash for loop com elementos de array, usando frutas como itens:<\/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=\"\">fruit_array=(\"apple\" \"banana\" \"red cherry\" \"green grape\")\n\nfor fruit in \"${fruit_array[@]}\"\ndo\n   echo \"Fruit: $fruit\"\ndone<\/pre><p class=\"wp-block-paragraph\">O loop Bash vai percorrer cada elemento do array e usar o comando <strong>echo<\/strong> para exibi-los com o prefixo <strong>Fruit:<\/strong><\/p><div class=\"wp-block-image\">\n<figure data-wp-context='{\"imageId\":\"6a6ea18cec776\"}' data-wp-interactive=\"core\/image\" data-wp-key=\"6a6ea18cec776\" class=\"aligncenter size-full wp-lightbox-container\"><img decoding=\"async\" width=\"737\" height=\"112\" data-wp-class--hide=\"state.isContentHidden\" data-wp-class--show=\"state.isContentVisible\" data-wp-init=\"callbacks.setButtonStyles\" data-wp-on--click=\"actions.showLightbox\" data-wp-on--load=\"callbacks.setButtonStyles\" data-wp-on--pointerdown=\"actions.preloadImage\" data-wp-on--pointerenter=\"actions.preloadImageWithDelay\" data-wp-on--pointerleave=\"actions.cancelPreload\" data-wp-on-window--resize=\"callbacks.setButtonStyles\" src=\"https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/53\/2019\/03\/bash-loop-with-array-output.png\/public\" alt=\"bash for loop com sa&iacute;da do tipo array\" class=\"wp-image-51269\" srcset=\"https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/53\/2019\/03\/bash-loop-with-array-output.png\/w=737,fit=scale-down 737w, https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/53\/2019\/03\/bash-loop-with-array-output.png\/w=300,fit=scale-down 300w, https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/53\/2019\/03\/bash-loop-with-array-output.png\/w=150,fit=scale-down 150w\" sizes=\"(max-width: 737px) 100vw, 737px\" \/><button class=\"lightbox-trigger\" type=\"button\" aria-haspopup=\"dialog\" data-wp-bind--aria-label=\"state.thisImage.triggerButtonAriaLabel\" data-wp-init=\"callbacks.initTriggerButton\" data-wp-on--click=\"actions.showLightbox\" data-wp-style--right=\"state.thisImage.buttonRight\" data-wp-style--top=\"state.thisImage.buttonTop\">\n\t\t\t<svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"12\" height=\"12\" fill=\"none\" viewbox=\"0 0 12 12\">\n\t\t\t\t<path fill=\"#fff\" d=\"M2 0a2 2 0 0 0-2 2v2h1.5V2a.5.5 0 0 1 .5-.5h2V0H2Zm2 10.5H2a.5.5 0 0 1-.5-.5V8H0v2a2 2 0 0 0 2 2h2v-1.5ZM8 12v-1.5h2a.5.5 0 0 0 .5-.5V8H12v2a2 2 0 0 1-2 2H8Zm2-12a2 2 0 0 1 2 2v2h-1.5V2a.5.5 0 0 0-.5-.5H8V0h2Z\"><\/path>\n\t\t\t<\/svg>\n\t\t<\/button><\/figure>\n<\/div><p class=\"wp-block-paragraph\">Se voc&ecirc; adicionar outro comando dentro do loop, ele ser&aacute; executado no mesmo item antes de passar para o pr&oacute;ximo. Veja o exemplo, em que inclu&iacute;mos outro <strong>echo<\/strong> para adicionar um sufixo:<\/p><div class=\"wp-block-image\">\n<figure data-wp-context='{\"imageId\":\"6a6ea18cef753\"}' data-wp-interactive=\"core\/image\" data-wp-key=\"6a6ea18cef753\" class=\"aligncenter size-full wp-lightbox-container\"><img decoding=\"async\" width=\"892\" height=\"201\" data-wp-class--hide=\"state.isContentHidden\" data-wp-class--show=\"state.isContentVisible\" data-wp-init=\"callbacks.setButtonStyles\" data-wp-on--click=\"actions.showLightbox\" data-wp-on--load=\"callbacks.setButtonStyles\" data-wp-on--pointerdown=\"actions.preloadImage\" data-wp-on--pointerenter=\"actions.preloadImageWithDelay\" data-wp-on--pointerleave=\"actions.cancelPreload\" data-wp-on-window--resize=\"callbacks.setButtonStyles\" src=\"https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/53\/2019\/03\/bash-for-loop-with-array-and-two-operations-output.png\/public\" alt=\"bash for loop com sa&iacute;da do tipo array e duas opera&ccedil;&otilde;es\" class=\"wp-image-51270\" srcset=\"https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/53\/2019\/03\/bash-for-loop-with-array-and-two-operations-output.png\/w=892,fit=scale-down 892w, https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/53\/2019\/03\/bash-for-loop-with-array-and-two-operations-output.png\/w=300,fit=scale-down 300w, https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/53\/2019\/03\/bash-for-loop-with-array-and-two-operations-output.png\/w=150,fit=scale-down 150w, https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/53\/2019\/03\/bash-for-loop-with-array-and-two-operations-output.png\/w=768,fit=scale-down 768w\" sizes=\"(max-width: 892px) 100vw, 892px\" \/><button class=\"lightbox-trigger\" type=\"button\" aria-haspopup=\"dialog\" data-wp-bind--aria-label=\"state.thisImage.triggerButtonAriaLabel\" data-wp-init=\"callbacks.initTriggerButton\" data-wp-on--click=\"actions.showLightbox\" data-wp-style--right=\"state.thisImage.buttonRight\" data-wp-style--top=\"state.thisImage.buttonTop\">\n\t\t\t<svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"12\" height=\"12\" fill=\"none\" viewbox=\"0 0 12 12\">\n\t\t\t\t<path fill=\"#fff\" d=\"M2 0a2 2 0 0 0-2 2v2h1.5V2a.5.5 0 0 1 .5-.5h2V0H2Zm2 10.5H2a.5.5 0 0 1-.5-.5V8H0v2a2 2 0 0 0 2 2h2v-1.5ZM8 12v-1.5h2a.5.5 0 0 0 .5-.5V8H12v2a2 2 0 0 1-2 2H8Zm2-12a2 2 0 0 1 2 2v2h-1.5V2a.5.5 0 0 0-.5-.5H8V0h2Z\"><\/path>\n\t\t\t<\/svg>\n\t\t<\/button><\/figure>\n<\/div><h3 class=\"wp-block-heading\" id=\"h-como-usar-um-bash-for-loop-com-uma-variavel-de-shell\">Como usar um Bash for loop com uma vari&aacute;vel de shell<\/h3><p class=\"wp-block-paragraph\">Combinar um Bash for loop com uma vari&aacute;vel de shell permite armazenar itens que o c&oacute;digo ir&aacute; percorrer. Ele funciona de forma semelhante a um array, j&aacute; que agrupa m&uacute;ltiplos elementos, mas nesse caso os itens s&atilde;o separados por espa&ccedil;os.<\/p><p class=\"wp-block-paragraph\">Um Bash for loop com vari&aacute;vel de shell usa a seguinte sintaxe:<\/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=\"\"># Definir a vari&aacute;vel de shell\nvariable=\"a single item\"\n\n# Iterar pela vari&aacute;vel e aplicar comandos\nfor item in $variable\ndo\n   comando1\n   comando2\n   comando3\ndone<\/pre><p class=\"wp-block-paragraph\">A vari&aacute;vel de shell acima cont&eacute;m apenas um elemento, mas o loop Bash automaticamente percorre os itens separados por espa&ccedil;o, tratando cada um como uma entidade diferente. Veja este exemplo:<\/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=\"\">var_numbers=\"1 2 3 4 5\"\n\nfor number in $var_numbers\ndo\n   echo \"Number: $number\"\ndone<\/pre><p class=\"wp-block-paragraph\">Em vez de imprimir todos os n&uacute;meros como uma &uacute;nica string, o loop Bash os exibe individualmente, pois cada valor est&aacute; separado por um espa&ccedil;o. Para tratar todos os itens como uma &uacute;nica entidade, basta colocar a vari&aacute;vel <strong>$var_numbers<\/strong> entre aspas na express&atilde;o <strong>for-in<\/strong>, 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=\"\">for number in \"$var_numbers\"<\/pre><div class=\"wp-block-image\">\n<figure data-wp-context='{\"imageId\":\"6a6ea18cf25ac\"}' data-wp-interactive=\"core\/image\" data-wp-key=\"6a6ea18cf25ac\" class=\"aligncenter size-full wp-lightbox-container\"><img decoding=\"async\" width=\"592\" height=\"46\" data-wp-class--hide=\"state.isContentHidden\" data-wp-class--show=\"state.isContentVisible\" data-wp-init=\"callbacks.setButtonStyles\" data-wp-on--click=\"actions.showLightbox\" data-wp-on--load=\"callbacks.setButtonStyles\" data-wp-on--pointerdown=\"actions.preloadImage\" data-wp-on--pointerenter=\"actions.preloadImageWithDelay\" data-wp-on--pointerleave=\"actions.cancelPreload\" data-wp-on-window--resize=\"callbacks.setButtonStyles\" src=\"https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/53\/2019\/03\/bash-loop-with-single-item-variable-output.png\/public\" alt=\"exemplo de bash for loop com sa&iacute;da de item &uacute;nico\" class=\"wp-image-51271\" srcset=\"https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/53\/2019\/03\/bash-loop-with-single-item-variable-output.png\/w=592,fit=scale-down 592w, https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/53\/2019\/03\/bash-loop-with-single-item-variable-output.png\/w=300,fit=scale-down 300w, https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/53\/2019\/03\/bash-loop-with-single-item-variable-output.png\/w=150,fit=scale-down 150w\" sizes=\"(max-width: 592px) 100vw, 592px\" \/><button class=\"lightbox-trigger\" type=\"button\" aria-haspopup=\"dialog\" data-wp-bind--aria-label=\"state.thisImage.triggerButtonAriaLabel\" data-wp-init=\"callbacks.initTriggerButton\" data-wp-on--click=\"actions.showLightbox\" data-wp-style--right=\"state.thisImage.buttonRight\" data-wp-style--top=\"state.thisImage.buttonTop\">\n\t\t\t<svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"12\" height=\"12\" fill=\"none\" viewbox=\"0 0 12 12\">\n\t\t\t\t<path fill=\"#fff\" d=\"M2 0a2 2 0 0 0-2 2v2h1.5V2a.5.5 0 0 1 .5-.5h2V0H2Zm2 10.5H2a.5.5 0 0 1-.5-.5V8H0v2a2 2 0 0 0 2 2h2v-1.5ZM8 12v-1.5h2a.5.5 0 0 0 .5-.5V8H12v2a2 2 0 0 1-2 2H8Zm2-12a2 2 0 0 1 2 2v2h-1.5V2a.5.5 0 0 0-.5-.5H8V0h2Z\"><\/path>\n\t\t\t<\/svg>\n\t\t<\/button><\/figure>\n<\/div><p class=\"wp-block-paragraph\">O comportamento das vari&aacute;veis no Bash pode ser ajustado para alterar a forma como o loop exibe os resultados.<\/p><h3 class=\"wp-block-heading\" id=\"h-como-usar-um-bash-for-loop-com-strings\">Como usar um Bash for loop com strings<\/h3><p class=\"wp-block-paragraph\">Combinar um Bash for loop com strings permite iterar sobre textos para realizar opera&ccedil;&otilde;es, como <a href=\"\/br\/tutoriais\/como-concatenar-strings-no-bash\/\">concatena&ccedil;&atilde;o<\/a>. Normalmente, as strings s&atilde;o agrupadas em uma vari&aacute;vel de shell ou em um array.<\/p><p class=\"wp-block-paragraph\">Usar uma vari&aacute;vel de shell &eacute; mais comum quando as strings n&atilde;o cont&ecirc;m espa&ccedil;os. Veja a sintaxe:<\/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=\"\">variable=\"string1 string2 string3\"\n\nfor item in $variable\ndo\n   comando1\n   comando2\n   comando3\ndone<\/pre><p class=\"wp-block-paragraph\">Por outro lado, utilize um Bash for loop com strings agrupadas em um array se os textos contiverem espa&ccedil;os. Al&eacute;m de permitir que o loop leia corretamente os itens separados, o uso de arrays facilita a itera&ccedil;&atilde;o e a expans&atilde;o. A sintaxe &eacute; a seguinte:<\/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=\"\">array=(\"Primeiro item\" \"Segundo item\" \"Terceiro item\" \"Quarto item\")\n\nfor item in \"${array[@]}\"\ndo\n   comando1\n   comando2\n   comando3\ndone<\/pre><h3 class=\"wp-block-heading\" id=\"h-como-usar-um-bash-for-loop-para-criar-um-loop-de-tres-expressoes\">Como usar um Bash for loop para criar um loop de tr&ecirc;s express&otilde;es<\/h3><p class=\"wp-block-paragraph\">Usar um Bash for loop para criar um loop de tr&ecirc;s express&otilde;es segue uma estrutura semelhante &agrave; da linguagem C. Essa estrutura &eacute; composta por tr&ecirc;s partes: um inicializador (<strong>EXP1<\/strong>), uma condi&ccedil;&atilde;o (<strong>EXP2<\/strong>) e um passo de contagem (<strong>EXP3<\/strong>).<\/p><p class=\"wp-block-paragraph\">O inicializador define a vari&aacute;vel inicial do script, e a condi&ccedil;&atilde;o determina se o loop continua ou n&atilde;o. J&aacute; o passo de contagem altera o valor inicial at&eacute; que atenda &agrave; condi&ccedil;&atilde;o especificada. A sintaxe desse loop &eacute; a seguinte:<\/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 (( EXP1; EXP2; EXP3 ))\ndo\n    comando1\n    comando2\n    comando3\ndone<\/pre><p class=\"wp-block-paragraph\">Como exemplo pr&aacute;tico, veja o exemplo 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=\"\">#!\/bin\/bash\nfor (( c=1; c&lt;=5; c++ ))\ndo  \n  echo \"The number $c\"\ndone<\/pre><p class=\"wp-block-paragraph\">O c&oacute;digo define o valor inicial do loop como <strong>1<\/strong>. O loop ser&aacute; executado enquanto a condi&ccedil;&atilde;o em <strong>EXP2<\/strong> for verdadeira &ndash; a vari&aacute;vel n&atilde;o deve ser maior que <strong>5<\/strong>. A express&atilde;o de contagem usa o sinal <strong>++<\/strong>, que incrementa o valor inicial em um a cada execu&ccedil;&atilde;o do loop.<\/p><p class=\"wp-block-paragraph\">O script Bash exibir&aacute; a mensagem <strong>&ldquo;$c&rdquo;<\/strong>, que se refere ao valor do loop, come&ccedil;ando em 1 at&eacute; atingir a condi&ccedil;&atilde;o especificada. A sa&iacute;da ser&aacute; a seguinte:<\/p><div class=\"wp-block-image\">\n<figure data-wp-context='{\"imageId\":\"6a6ea18d01602\"}' data-wp-interactive=\"core\/image\" data-wp-key=\"6a6ea18d01602\" class=\"aligncenter size-full wp-lightbox-container\"><img decoding=\"async\" width=\"831\" height=\"132\" data-wp-class--hide=\"state.isContentHidden\" data-wp-class--show=\"state.isContentVisible\" data-wp-init=\"callbacks.setButtonStyles\" data-wp-on--click=\"actions.showLightbox\" data-wp-on--load=\"callbacks.setButtonStyles\" data-wp-on--pointerdown=\"actions.preloadImage\" data-wp-on--pointerenter=\"actions.preloadImageWithDelay\" data-wp-on--pointerleave=\"actions.cancelPreload\" data-wp-on-window--resize=\"callbacks.setButtonStyles\" src=\"https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/53\/2019\/03\/three-expression-bash-loop-output.png\/public\" alt=\"sa&iacute;da de comando bash for loop com tr&ecirc;s express&otilde;es\" class=\"wp-image-51272\" srcset=\"https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/53\/2019\/03\/three-expression-bash-loop-output.png\/w=831,fit=scale-down 831w, https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/53\/2019\/03\/three-expression-bash-loop-output.png\/w=300,fit=scale-down 300w, https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/53\/2019\/03\/three-expression-bash-loop-output.png\/w=150,fit=scale-down 150w, https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/53\/2019\/03\/three-expression-bash-loop-output.png\/w=768,fit=scale-down 768w\" sizes=\"(max-width: 831px) 100vw, 831px\" \/><button class=\"lightbox-trigger\" type=\"button\" aria-haspopup=\"dialog\" data-wp-bind--aria-label=\"state.thisImage.triggerButtonAriaLabel\" data-wp-init=\"callbacks.initTriggerButton\" data-wp-on--click=\"actions.showLightbox\" data-wp-style--right=\"state.thisImage.buttonRight\" data-wp-style--top=\"state.thisImage.buttonTop\">\n\t\t\t<svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"12\" height=\"12\" fill=\"none\" viewbox=\"0 0 12 12\">\n\t\t\t\t<path fill=\"#fff\" d=\"M2 0a2 2 0 0 0-2 2v2h1.5V2a.5.5 0 0 1 .5-.5h2V0H2Zm2 10.5H2a.5.5 0 0 1-.5-.5V8H0v2a2 2 0 0 0 2 2h2v-1.5ZM8 12v-1.5h2a.5.5 0 0 0 .5-.5V8H12v2a2 2 0 0 1-2 2H8Zm2-12a2 2 0 0 1 2 2v2h-1.5V2a.5.5 0 0 0-.5-.5H8V0h2Z\"><\/path>\n\t\t\t<\/svg>\n\t\t<\/button><\/figure>\n<\/div><h3 class=\"wp-block-heading\" id=\"h-como-usar-um-bash-for-loop-para-criar-um-loop-infinito\">Como usar um Bash for loop para criar um loop infinito<\/h3><p class=\"wp-block-paragraph\">Criar um loop infinito usando um Bash for loop permite executar c&oacute;digo indefinidamente at&eacute; que voc&ecirc; finalize o processo manualmente pressionando <strong>Ctrl + C<\/strong>. H&aacute; diferentes maneiras de fazer isso, como usando a express&atilde;o <strong>while<\/strong>:<\/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=\"\">while true \ndo \n   echo \"Hello, world!\"\n   sleep 1\ndone <\/pre><p class=\"wp-block-paragraph\">Quando a condi&ccedil;&atilde;o &eacute; <strong>verdadeira<\/strong>, o comando imprimir&aacute; a mensagem <strong>Hello, world!<\/strong> com um atraso de um segundo. O trecho utiliza a declara&ccedil;&atilde;o condicional <strong>while true<\/strong> para garantir que o c&oacute;digo sempre retorne o status de sa&iacute;da bem-sucedido.<\/p><p class=\"wp-block-paragraph\">Como a condi&ccedil;&atilde;o permanece <strong>verdadeira<\/strong>, o c&oacute;digo continuar&aacute; repetindo o comando echo para exibir a mensagem. Outro m&eacute;todo &eacute; usar o loop infinito de tr&ecirc;s express&otilde;es:<\/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 (( ; ; ))\ndo\n   echo \"Hello, world!\"\n   sleep 1\ndone<\/pre><p class=\"wp-block-paragraph\">No trecho acima, todas as express&otilde;es foram deixadas em branco. Como n&atilde;o h&aacute; uma condi&ccedil;&atilde;o de t&eacute;rmino a ser atendida, o loop continuar&aacute; rodando at&eacute; que o usu&aacute;rio o interrompa.<\/p><div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full\"><img decoding=\"async\" width=\"653\" height=\"88\" src=\"https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/53\/2019\/03\/infinite-bash-loop-output.png\/public\" alt=\"sa&iacute;da de comando bash for loop com loop infinito\" class=\"wp-image-51273\" srcset=\"https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/53\/2019\/03\/infinite-bash-loop-output.png\/w=653,fit=scale-down 653w, https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/53\/2019\/03\/infinite-bash-loop-output.png\/w=300,fit=scale-down 300w, https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/53\/2019\/03\/infinite-bash-loop-output.png\/w=150,fit=scale-down 150w\" sizes=\"(max-width: 653px) 100vw, 653px\" \/><\/figure>\n<\/div><h3 class=\"wp-block-heading\" id=\"h-como-usar-um-bash-for-loop-para-criar-um-loop-com-skip-e-continue\">Como usar um Bash for loop para criar um loop com skip e continue<\/h3><p class=\"wp-block-paragraph\">Um Bash for loop permite criar um loop que ignora um valor espec&iacute;fico e continua executando depois disso. Essa opera&ccedil;&atilde;o usa a seguinte sintaxe:<\/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 1 2 3 4 5\ndo\n   if [condition]\n   then\n      # Continua para a pr&oacute;xima itera&ccedil;&atilde;o de i e ignora a instru&ccedil;&atilde;o\n      continue   \n   fi\n      statement\ndone<\/pre><p class=\"wp-block-paragraph\">Aqui est&aacute; um exemplo de c&oacute;digo de loop com skip e continue:<\/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 {1..5}\ndo\n   if [[ \"$i\" == '4' ]]\n   then\n      continue   \n   fi\n      echo \"Hello $i\"\ndone<\/pre><p class=\"wp-block-paragraph\">No trecho acima, definimos os itens como os n&uacute;meros de um a cinco. Adicionamos uma condi&ccedil;&atilde;o <strong>if<\/strong> que determina que, quando o valor da vari&aacute;vel for igual a <strong>4<\/strong>, o loop n&atilde;o executa o c&oacute;digo e passa para o pr&oacute;ximo valor. Isso significa que o loop rodar&aacute; com <strong>1<\/strong>, <strong>2<\/strong>, <strong>3<\/strong> e <strong>5<\/strong>, como mostra a sa&iacute;da:<\/p><div class=\"wp-block-image\">\n<figure data-wp-context='{\"imageId\":\"6a6ea18d07306\"}' data-wp-interactive=\"core\/image\" data-wp-key=\"6a6ea18d07306\" class=\"aligncenter size-full wp-lightbox-container\"><img decoding=\"async\" width=\"727\" height=\"106\" data-wp-class--hide=\"state.isContentHidden\" data-wp-class--show=\"state.isContentVisible\" data-wp-init=\"callbacks.setButtonStyles\" data-wp-on--click=\"actions.showLightbox\" data-wp-on--load=\"callbacks.setButtonStyles\" data-wp-on--pointerdown=\"actions.preloadImage\" data-wp-on--pointerenter=\"actions.preloadImageWithDelay\" data-wp-on--pointerleave=\"actions.cancelPreload\" data-wp-on-window--resize=\"callbacks.setButtonStyles\" src=\"https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/53\/2019\/03\/skip-continue-bash-loop-output.png\/public\" alt=\"exemplo de comando bash for loop com skip e continue\" class=\"wp-image-51274\" srcset=\"https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/53\/2019\/03\/skip-continue-bash-loop-output.png\/w=727,fit=scale-down 727w, https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/53\/2019\/03\/skip-continue-bash-loop-output.png\/w=300,fit=scale-down 300w, https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/53\/2019\/03\/skip-continue-bash-loop-output.png\/w=150,fit=scale-down 150w\" sizes=\"(max-width: 727px) 100vw, 727px\" \/><button class=\"lightbox-trigger\" type=\"button\" aria-haspopup=\"dialog\" data-wp-bind--aria-label=\"state.thisImage.triggerButtonAriaLabel\" data-wp-init=\"callbacks.initTriggerButton\" data-wp-on--click=\"actions.showLightbox\" data-wp-style--right=\"state.thisImage.buttonRight\" data-wp-style--top=\"state.thisImage.buttonTop\">\n\t\t\t<svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"12\" height=\"12\" fill=\"none\" viewbox=\"0 0 12 12\">\n\t\t\t\t<path fill=\"#fff\" d=\"M2 0a2 2 0 0 0-2 2v2h1.5V2a.5.5 0 0 1 .5-.5h2V0H2Zm2 10.5H2a.5.5 0 0 1-.5-.5V8H0v2a2 2 0 0 0 2 2h2v-1.5ZM8 12v-1.5h2a.5.5 0 0 0 .5-.5V8H12v2a2 2 0 0 1-2 2H8Zm2-12a2 2 0 0 1 2 2v2h-1.5V2a.5.5 0 0 0-.5-.5H8V0h2Z\"><\/path>\n\t\t\t<\/svg>\n\t\t<\/button><\/figure>\n<\/div><h3 class=\"wp-block-heading\" id=\"h-como-usar-um-bash-for-loop-para-criar-uma-saida-condicional-com-break\">Como usar um Bash for loop para criar uma sa&iacute;da condicional com break<\/h3><p class=\"wp-block-paragraph\">Um Bash for loop permite criar um loop que para automaticamente quando encontra uma condi&ccedil;&atilde;o espec&iacute;fica, usando a constru&ccedil;&atilde;o <strong>for-in<\/strong> com a seguinte sintaxe:<\/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 1 2 3 4 5\ndo\n   if [condition]\n   then\n      break\n   fi\n   statement\ndone<\/pre><p class=\"wp-block-paragraph\">Voc&ecirc; pode adicionar outro comando no final do c&oacute;digo, que ser&aacute; executado depois que o loop terminar. Veja o exemplo:<\/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 state in Alabama Alaska Arizona Arkansas California\ndo\n   if [[ \"$state\" == 'Arkansas' ]]; then\n      break\n   fi\n   echo \"state: $state\"\ndone\n\necho \"That&rsquo;s all!\"<\/pre><p class=\"wp-block-paragraph\">O script imprime todos os nomes dos estados definidos na lista, mas para assim que a condi&ccedil;&atilde;o do break &eacute; atendida, ou seja, quando o valor atual for igual a <strong>Arkansas<\/strong>. Em seguida, o c&oacute;digo passa para a pr&oacute;xima instru&ccedil;&atilde;o e exibe a mensagem <strong>That&rsquo;s all!<\/strong>.<\/p><div class=\"wp-block-image\">\n<figure data-wp-context='{\"imageId\":\"6a6ea18d0a80a\"}' data-wp-interactive=\"core\/image\" data-wp-key=\"6a6ea18d0a80a\" class=\"aligncenter size-full wp-lightbox-container\"><img decoding=\"async\" width=\"662\" height=\"110\" data-wp-class--hide=\"state.isContentHidden\" data-wp-class--show=\"state.isContentVisible\" data-wp-init=\"callbacks.setButtonStyles\" data-wp-on--click=\"actions.showLightbox\" data-wp-on--load=\"callbacks.setButtonStyles\" data-wp-on--pointerdown=\"actions.preloadImage\" data-wp-on--pointerenter=\"actions.preloadImageWithDelay\" data-wp-on--pointerleave=\"actions.cancelPreload\" data-wp-on-window--resize=\"callbacks.setButtonStyles\" src=\"https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/53\/2019\/03\/bash-loop-break-condition-output.png\/public\" alt=\"sa&iacute;da de comando bash for loop com break loop\" class=\"wp-image-51275\" srcset=\"https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/53\/2019\/03\/bash-loop-break-condition-output.png\/w=662,fit=scale-down 662w, https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/53\/2019\/03\/bash-loop-break-condition-output.png\/w=300,fit=scale-down 300w, https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/53\/2019\/03\/bash-loop-break-condition-output.png\/w=150,fit=scale-down 150w\" sizes=\"(max-width: 662px) 100vw, 662px\" \/><button class=\"lightbox-trigger\" type=\"button\" aria-haspopup=\"dialog\" data-wp-bind--aria-label=\"state.thisImage.triggerButtonAriaLabel\" data-wp-init=\"callbacks.initTriggerButton\" data-wp-on--click=\"actions.showLightbox\" data-wp-style--right=\"state.thisImage.buttonRight\" data-wp-style--top=\"state.thisImage.buttonTop\">\n\t\t\t<svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"12\" height=\"12\" fill=\"none\" viewbox=\"0 0 12 12\">\n\t\t\t\t<path fill=\"#fff\" d=\"M2 0a2 2 0 0 0-2 2v2h1.5V2a.5.5 0 0 1 .5-.5h2V0H2Zm2 10.5H2a.5.5 0 0 1-.5-.5V8H0v2a2 2 0 0 0 2 2h2v-1.5ZM8 12v-1.5h2a.5.5 0 0 0 .5-.5V8H12v2a2 2 0 0 1-2 2H8Zm2-12a2 2 0 0 1 2 2v2h-1.5V2a.5.5 0 0 0-.5-.5H8V0h2Z\"><\/path>\n\t\t\t<\/svg>\n\t\t<\/button><\/figure>\n<\/div><h3 class=\"wp-block-heading\" id=\"h-como-usar-scripts-bash-de-maneira-eficaz-no-vps-da-hostinger\">Como usar scripts Bash de maneira eficaz no VPS da Hostinger<\/h3><p class=\"wp-block-paragraph\">Usar um Bash for loop junto com os recursos do seu provedor de hospedagem pode simplificar ainda mais as tarefas de administra&ccedil;&atilde;o do servidor, tornando o processo mais eficiente.<\/p><p class=\"wp-block-paragraph\">Por exemplo, os planos de VPS da Hostinger contam com um <strong>terminal no navegador<\/strong> integrado ao nosso painel de controle personalizado, o <a href=\"\/br\/tutoriais\/hpanel\/\">hPanel<\/a>. Ele permite executar comandos Linux e utilit&aacute;rios como o Bash loop diretamente do seu navegador.<\/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><p class=\"wp-block-paragraph\">Tamb&eacute;m oferecemos o Kodee, nosso assistente de intelig&ecirc;ncia artificial que facilita a gest&atilde;o de VPS para iniciantes. Voc&ecirc; pode, por exemplo, pedir para ele gerar scripts de Bash for loop para diferentes tarefas usando prompts simples, como &ldquo;Pode gerar um Bash for loop que reinicie uma lista de servi&ccedil;os?&rdquo; ou &ldquo;Crie um Bash for loop para fazer backup de m&uacute;ltiplos diret&oacute;rios&rdquo;.<\/p><div class=\"wp-block-image\">\n<figure data-wp-context='{\"imageId\":\"6a6ea18d0de35\"}' data-wp-interactive=\"core\/image\" data-wp-key=\"6a6ea18d0de35\" class=\"aligncenter size-full wp-lightbox-container\"><img decoding=\"async\" width=\"381\" height=\"583\" data-wp-class--hide=\"state.isContentHidden\" data-wp-class--show=\"state.isContentVisible\" data-wp-init=\"callbacks.setButtonStyles\" data-wp-on--click=\"actions.showLightbox\" data-wp-on--load=\"callbacks.setButtonStyles\" data-wp-on--pointerdown=\"actions.preloadImage\" data-wp-on--pointerenter=\"actions.preloadImageWithDelay\" data-wp-on--pointerleave=\"actions.cancelPreload\" data-wp-on-window--resize=\"callbacks.setButtonStyles\" src=\"https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/53\/2019\/03\/kodee-bash.png\/public\" alt=\"assistente de ia kodee criando script bash para reiniciar lista de servi&ccedil;os\" class=\"wp-image-51276\" srcset=\"https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/53\/2019\/03\/kodee-bash.png\/w=381,fit=scale-down 381w, https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/53\/2019\/03\/kodee-bash.png\/w=196,fit=scale-down 196w, https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/53\/2019\/03\/kodee-bash.png\/w=98,fit=scale-down 98w\" sizes=\"(max-width: 381px) 100vw, 381px\" \/><button class=\"lightbox-trigger\" type=\"button\" aria-haspopup=\"dialog\" data-wp-bind--aria-label=\"state.thisImage.triggerButtonAriaLabel\" data-wp-init=\"callbacks.initTriggerButton\" data-wp-on--click=\"actions.showLightbox\" data-wp-style--right=\"state.thisImage.buttonRight\" data-wp-style--top=\"state.thisImage.buttonTop\">\n\t\t\t<svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"12\" height=\"12\" fill=\"none\" viewbox=\"0 0 12 12\">\n\t\t\t\t<path fill=\"#fff\" d=\"M2 0a2 2 0 0 0-2 2v2h1.5V2a.5.5 0 0 1 .5-.5h2V0H2Zm2 10.5H2a.5.5 0 0 1-.5-.5V8H0v2a2 2 0 0 0 2 2h2v-1.5ZM8 12v-1.5h2a.5.5 0 0 0 .5-.5V8H12v2a2 2 0 0 1-2 2H8Zm2-12a2 2 0 0 1 2 2v2h-1.5V2a.5.5 0 0 0-.5-.5H8V0h2Z\"><\/path>\n\t\t\t<\/svg>\n\t\t<\/button><\/figure>\n<\/div><p class=\"wp-block-paragraph\">Para acessar a ferramenta, fa&ccedil;a login no hPanel e clique em <strong>VPS<\/strong> no menu superior. Depois, selecione o servidor desejado e navegue at&eacute; <strong>Kodee<\/strong> na barra lateral. Para obter resultados mais precisos, certifique-se de que seus prompts de desenvolvimento sejam espec&iacute;ficos e claros.<\/p><p>\n\n\n<div class=\"announcement-block announcement-block--important\">\n            <span class=\"announcement-block__heading\">\n                <svg width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\">\n                    <path fill-rule=\"evenodd\" clip-rule=\"evenodd\"\n                          d=\"M12 22.5C17.799 22.5 22.5 17.799 22.5 12C22.5 6.20101 17.799 1.5 12 1.5C6.20101 1.5 1.5 6.20101 1.5 12C1.5 17.799 6.20101 22.5 12 22.5ZM13.637 7.65198C13.637 6.74791 12.9041 6.01501 12 6.01501C11.0959 6.01501 10.363 6.74791 10.363 7.65198C10.5335 9.53749 10.875 13.383 10.875 13.383C10.875 14.0043 11.3787 14.508 12 14.508C12.6213 14.508 13.125 14.0043 13.125 13.383V13.38L13.637 7.65198ZM11.9927 15.714C11.3714 15.714 10.8677 16.2177 10.8677 16.839C10.8677 17.4603 11.3714 17.964 11.9927 17.964H12.0073C12.6286 17.964 13.1323 17.4603 13.1323 16.839C13.1323 16.2177 12.6286 15.714 12.0073 15.714H11.9927Z\"\n                          fill=\"#FEA419\"\/>\n                <\/svg>\n                Important\n            <\/span>\n            <p class=\"announcement-block__content\">\n                <strong>Importante! <\/strong>Devido a limita&ccedil;&otilde;es de IA, algumas respostas podem estar desatualizadas ou imprecisas.\n            <\/p><\/div>\n\n\n\n<\/p><h2 class=\"wp-block-heading\" id=\"h-proximos-passos\">Pr&oacute;ximos passos<\/h2><p class=\"wp-block-paragraph\">Um Bash for loop &eacute; excelente para automatizar tarefas repetitivas, processar dados e gerenciar sistemas baseados em UNIX. Com uma &uacute;nica execu&ccedil;&atilde;o, por exemplo, voc&ecirc; pode iterar sobre nomes para criar novos usu&aacute;rios automaticamente ao <a href=\"\/br\/tutoriais\/como-configurar-vps\/\">configurar um VPS<\/a>.<\/p><p class=\"wp-block-paragraph\">Como vimos, &eacute; poss&iacute;vel realizar diferentes opera&ccedil;&otilde;es com um Bash for loop combinando-o com outras constru&ccedil;&otilde;es do Bash, como o <strong>for-in<\/strong>. Al&eacute;m disso, voc&ecirc; pode ampliar ainda mais sua funcionalidade incorporando outras ferramentas de linha de comando, criando uma forma eficiente de concluir tarefas.<\/p><p class=\"wp-block-paragraph\">Agora que voc&ecirc; entende os conceitos b&aacute;sicos de um Bash for loop, &eacute; hora de praticar no dia a dia. Se voc&ecirc; usa o VPS da Hostinger, pode pedir ao <strong>Kodee<\/strong> para escrever ou explicar scripts de Bash for loop, tornando o aprendizado mais intuitivo e ajudando a se familiarizar rapidamente.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>O Bash for loop &eacute; um comando da linguagem Bash que permite executar um trecho de c&oacute;digo v&aacute;rias vezes de forma autom&aacute;tica. Ele &eacute; muito &uacute;til para lidar com tarefas repetitivas, tornando a administra&ccedil;&atilde;o do sistema mais r&aacute;pida e eficiente. Na pr&aacute;tica, o Bash for loop funciona atribuindo os itens de uma lista a uma [&#8230;]<\/p>\n<p><a class=\"btn btn-secondary understrap-read-more-link\" href=\"\/br\/tutoriais\/bash-for-loop-guia\/\">Read More&#8230;<\/a><\/p>\n","protected":false},"author":356,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"rank_math_title":"Como usar o comando bash for loop: sintaxe e exemplos","rank_math_description":"Aprenda o essencial sobre Bash for loop: automatize tarefas, simplifique processos no VPS e descubra exemplos para usar no dia a dia.","rank_math_focus_keyword":"bash for loop","footnotes":""},"categories":[4915],"tags":[6413,6415,6414],"class_list":["post-15247","post","type-post","status-publish","format-standard","hentry","category-vps","tag-bash-for-loop","tag-for-loop","tag-loop-for"],"hreflangs":[{"locale":"en-US","link":"https:\/\/www.hostinger.com\/tutorials\/bash-for-loop\/","default":1},{"locale":"pt-BR","link":"https:\/\/www.hostinger.com\/br\/tutoriais\/bash-for-loop-guia\/","default":0},{"locale":"fr-FR","link":"https:\/\/www.hostinger.com\/fr\/tutoriels\/guide-bash-boucle-for\/","default":0},{"locale":"es-ES","link":"https:\/\/www.hostinger.com\/es\/tutoriales\/bash-for-loop-guia-ejemplos\/","default":0},{"locale":"id-ID","link":"https:\/\/www.hostinger.com\/id\/tutorial\/bash-for-loop\/","default":0},{"locale":"it-IT","link":"https:\/\/www.hostinger.com\/it\/tutorial\/ciclo-for-bash\/","default":0},{"locale":"en-PH","link":"https:\/\/www.hostinger.com\/ph\/tutorials\/bash-for-loop\/","default":0},{"locale":"en-MY","link":"https:\/\/www.hostinger.com\/my\/tutorials\/bash-for-loop\/","default":0},{"locale":"en-GB","link":"https:\/\/www.hostinger.com\/uk\/tutorials\/bash-for-loop\/","default":0},{"locale":"en-IN","link":"https:\/\/www.hostinger.com\/in\/tutorials\/bash-for-loop\/","default":0},{"locale":"en-CA","link":"https:\/\/www.hostinger.com\/ca\/tutorials\/bash-for-loop\/","default":0},{"locale":"en-AU","link":"https:\/\/www.hostinger.com\/au\/tutorials\/bash-for-loop\/","default":0},{"locale":"en-NG","link":"https:\/\/www.hostinger.com\/ng\/tutorials\/bash-for-loop\/","default":0},{"locale":"es-AR","link":"https:\/\/www.hostinger.com\/ar\/tutoriales\/bash-for-loop-guia-ejemplos\/","default":0},{"locale":"es-MX","link":"https:\/\/www.hostinger.com\/mx\/tutoriales\/bash-for-loop-guia-ejemplos\/","default":0},{"locale":"es-CO","link":"https:\/\/www.hostinger.com\/co\/tutoriales\/bash-for-loop-guia-ejemplos\/","default":0},{"locale":"pt-PT","link":"https:\/\/www.hostinger.com\/pt\/tutoriais\/bash-for-loop-guia\/","default":0}],"acf":[],"_links":{"self":[{"href":"https:\/\/www.hostinger.com\/br\/tutoriais\/wp-json\/wp\/v2\/posts\/15247","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=15247"}],"version-history":[{"count":8,"href":"https:\/\/www.hostinger.com\/br\/tutoriais\/wp-json\/wp\/v2\/posts\/15247\/revisions"}],"predecessor-version":[{"id":55354,"href":"https:\/\/www.hostinger.com\/br\/tutoriais\/wp-json\/wp\/v2\/posts\/15247\/revisions\/55354"}],"wp:attachment":[{"href":"https:\/\/www.hostinger.com\/br\/tutoriais\/wp-json\/wp\/v2\/media?parent=15247"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.hostinger.com\/br\/tutoriais\/wp-json\/wp\/v2\/categories?post=15247"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.hostinger.com\/br\/tutoriais\/wp-json\/wp\/v2\/tags?post=15247"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}