{"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":"2025-10-14T11:56:16","modified_gmt":"2025-10-14T14:56:16","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>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>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>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>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>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>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>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>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>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>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>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>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-linus\">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>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>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\/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><p>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>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>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>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>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>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>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><p class=\"important\"><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.<\/p><\/div>\n\n\n\n<\/p><p>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\":\"69f37292817c2\"}' data-wp-interactive=\"core\/image\" 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-async--click=\"actions.showLightbox\" data-wp-on-async--load=\"callbacks.setButtonStyles\" data-wp-on-async-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\" aria-label=\"Ampliar\" data-wp-init=\"callbacks.initTriggerButton\" data-wp-on-async--click=\"actions.showLightbox\" data-wp-style--right=\"state.imageButtonRight\" data-wp-style--top=\"state.imageButtonTop\">\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><\/div><p>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>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>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>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>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\":\"69f37292826f5\"}' data-wp-interactive=\"core\/image\" 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-async--click=\"actions.showLightbox\" data-wp-on-async--load=\"callbacks.setButtonStyles\" data-wp-on-async-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\" aria-label=\"Ampliar\" data-wp-init=\"callbacks.initTriggerButton\" data-wp-on-async--click=\"actions.showLightbox\" data-wp-style--right=\"state.imageButtonRight\" data-wp-style--top=\"state.imageButtonTop\">\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><\/div><p>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\":\"69f372928349f\"}' data-wp-interactive=\"core\/image\" 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-async--click=\"actions.showLightbox\" data-wp-on-async--load=\"callbacks.setButtonStyles\" data-wp-on-async-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\" aria-label=\"Ampliar\" data-wp-init=\"callbacks.initTriggerButton\" data-wp-on-async--click=\"actions.showLightbox\" data-wp-style--right=\"state.imageButtonRight\" data-wp-style--top=\"state.imageButtonTop\">\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><\/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>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>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>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>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\":\"69f3729284148\"}' data-wp-interactive=\"core\/image\" 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-async--click=\"actions.showLightbox\" data-wp-on-async--load=\"callbacks.setButtonStyles\" data-wp-on-async-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\" aria-label=\"Ampliar\" data-wp-init=\"callbacks.initTriggerButton\" data-wp-on-async--click=\"actions.showLightbox\" data-wp-style--right=\"state.imageButtonRight\" data-wp-style--top=\"state.imageButtonTop\">\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><\/div><p>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>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>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>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>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>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>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>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>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\":\"69f372928562c\"}' data-wp-interactive=\"core\/image\" 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-async--click=\"actions.showLightbox\" data-wp-on-async--load=\"callbacks.setButtonStyles\" data-wp-on-async-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\" aria-label=\"Ampliar\" data-wp-init=\"callbacks.initTriggerButton\" data-wp-on-async--click=\"actions.showLightbox\" data-wp-style--right=\"state.imageButtonRight\" data-wp-style--top=\"state.imageButtonTop\">\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><\/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>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>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>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>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><\/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>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>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>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\":\"69f3729286fab\"}' data-wp-interactive=\"core\/image\" 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-async--click=\"actions.showLightbox\" data-wp-on-async--load=\"callbacks.setButtonStyles\" data-wp-on-async-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\" aria-label=\"Ampliar\" data-wp-init=\"callbacks.initTriggerButton\" data-wp-on-async--click=\"actions.showLightbox\" data-wp-style--right=\"state.imageButtonRight\" data-wp-style--top=\"state.imageButtonTop\">\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><\/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>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>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>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\":\"69f3729287ca4\"}' data-wp-interactive=\"core\/image\" 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-async--click=\"actions.showLightbox\" data-wp-on-async--load=\"callbacks.setButtonStyles\" data-wp-on-async-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\" aria-label=\"Ampliar\" data-wp-init=\"callbacks.initTriggerButton\" data-wp-on-async--click=\"actions.showLightbox\" data-wp-style--right=\"state.imageButtonRight\" data-wp-style--top=\"state.imageButtonTop\">\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><\/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>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>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\/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><p>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\":\"69f3729288be7\"}' data-wp-interactive=\"core\/image\" 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-async--click=\"actions.showLightbox\" data-wp-on-async--load=\"callbacks.setButtonStyles\" data-wp-on-async-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\" aria-label=\"Ampliar\" data-wp-init=\"callbacks.initTriggerButton\" data-wp-on-async--click=\"actions.showLightbox\" data-wp-style--right=\"state.imageButtonRight\" data-wp-style--top=\"state.imageButtonTop\">\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><\/div><p>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><p class=\"important\"><strong>Importante! <\/strong>Devido a limita&ccedil;&otilde;es de IA, algumas respostas podem estar desatualizadas ou imprecisas.<\/p><\/div>\n\n\n\n<\/p><h2 class=\"wp-block-heading\" id=\"h-proximos-passos\">Pr&oacute;ximos passos<\/h2><p>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>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>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":"pt-BR","link":"https:\/\/www.hostinger.com\/br\/tutoriais\/bash-for-loop-guia","default":1},{"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":7,"href":"https:\/\/www.hostinger.com\/br\/tutoriais\/wp-json\/wp\/v2\/posts\/15247\/revisions"}],"predecessor-version":[{"id":51277,"href":"https:\/\/www.hostinger.com\/br\/tutoriais\/wp-json\/wp\/v2\/posts\/15247\/revisions\/51277"}],"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}]}}