{"id":15247,"date":"2019-03-19T15:23:34","date_gmt":"2019-03-19T18:23:34","guid":{"rendered":"https:\/\/blog.hostinger.io\/pt-tutoriais\/?p=15247"},"modified":"2023-07-14T20:45:08","modified_gmt":"2023-07-14T23:45:08","slug":"bash-for-loop-guia","status":"publish","type":"post","link":"\/pt\/tutoriais\/bash-for-loop-guia","title":{"rendered":"Comando Bash for loop \u2013 guia e exemplos"},"content":{"rendered":"<p>O <i>for loop<\/i> &eacute; uma das instru&ccedil;&otilde;es mais b&aacute;sicas em diversas linguagens de programa&ccedil;&atilde;o. Neste tutorial, vamos explicar como &eacute; utilizado na linguagem de programa&ccedil;&atilde;o Bash &nbsp;&ndash; justificando o nome, &ldquo;<i>bash for loop<\/i>&rdquo;.<\/p><p>Um <i>for loop<\/i> &eacute; uma instru&ccedil;&atilde;o de itera&ccedil;&atilde;o, significando que pode ser executada repetidamente. Digamos que voc&ecirc; quer executar uma instru&ccedil;&atilde;o 5 vezes. Ao inv&eacute;s de escrever 5 peda&ccedil;os de c&oacute;digos distintos, voc&ecirc; pode escrever uma &uacute;nica sintaxe de um <i>for loop<\/i>. Mas este &eacute; s&oacute; um exemplo, vamos explorar ainda mais o potencial do <i>for loop<\/i> nos par&aacute;grafos abaixo. Vamos l&aacute;!<\/p><figure class=\"wp-block-image size-large\"><a href=\"https:\/\/assets.hostinger.com\/content\/tutorials\/pdf\/Linux-Commands-Cheatsheet-BR.pdf\" target=\"_blank\" rel=\"noreferrer noopener\"><img decoding=\"async\" width=\"1024\" height=\"283\" src=\"https:\/\/blog.hostinger.io\/pt-tutoriais\/wp-content\/uploads\/sites\/26\/2022\/12\/Linux-cheat-sheet-BR-1024x283.png\" alt=\"\" class=\"wp-image-30351\" srcset=\"https:\/\/www.hostinger.com\/pt\/tutoriais\/wp-content\/uploads\/sites\/26\/2022\/12\/Linux-cheat-sheet-BR.png 1024w, https:\/\/www.hostinger.com\/pt\/tutoriais\/wp-content\/uploads\/sites\/26\/2022\/12\/Linux-cheat-sheet-BR-300x83.png 300w, https:\/\/www.hostinger.com\/pt\/tutoriais\/wp-content\/uploads\/sites\/26\/2022\/12\/Linux-cheat-sheet-BR-150x41.png 150w, https:\/\/www.hostinger.com\/pt\/tutoriais\/wp-content\/uploads\/sites\/26\/2022\/12\/Linux-cheat-sheet-BR-768x212.png 768w, https:\/\/www.hostinger.com\/pt\/tutoriais\/wp-content\/uploads\/sites\/26\/2022\/12\/Linux-cheat-sheet-BR-1536x425.png 1536w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><\/a><\/figure><h2 class=\"wp-block-heading\" id=\"h-sintaxe-bash-for-loop\"><b>Sintaxe Bash For Loop<\/b><\/h2><p>Basicamente, a sintaxe mais simples do <i>for loop<\/i> repete a ocorr&ecirc;ncia de uma s&eacute;rie de vari&aacute;veis. Tipicamente, ela fica assim:<\/p><pre class=\"wp-block-preformatted\">for VARIABLE in 1 2 3 4 5 .. N\nPerform the below command:\n&nbsp;&nbsp;&nbsp; command1\n&nbsp;&nbsp;&nbsp; command2\n&nbsp;&nbsp;&nbsp; commandN\ndone<\/pre><p>No mundo real, esta sintaxe ficaria parecida com o exemplo abaixo:<\/p><pre class=\"wp-block-preformatted\">#!\/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=\"wp-block-preformatted\">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 c&oacute;digo 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>Voc&ecirc; pode escrever o c&oacute;digo de maneiras diferentes dependendo da vers&atilde;o do bash sendo utilizada:<\/p><p>Vers&otilde;es 3.0+ do bash permitem encurtar o intervalo (range) com &ldquo;<b>. .<\/b>&rdquo;.<\/p><pre class=\"wp-block-preformatted\">#!\/bin\/bash\nfor i in {1. .5}\ndo\n&nbsp;echo \"Hai $i\"\ndone<\/pre><p>Vers&otilde;es 4.0+ do bash permitem que voc&ecirc; use a sintaxe <b>{IN&Iacute;CIO. .FIM. .INCREMENTO}<\/b>.<\/p><pre class=\"wp-block-preformatted\">#!\/bin\/bash\nfor i in {0. .8. .2}\ndo\n&nbsp;echo \"Hai $i\"\ndone<\/pre><p>O resultado vai ser este:<\/p><pre class=\"wp-block-preformatted\">Hai 0\nHai 2\nHai 4\nHai 6 \nHai 8<\/pre><p>Outras sintaxes comuns s&atilde;o:<\/p><pre class=\"wp-block-preformatted\">for VARIABLE in file1 file2 file3\ndo\n&nbsp;&nbsp;&nbsp; command1 on $VARIABLE\n&nbsp;&nbsp;&nbsp; command2\n&nbsp;&nbsp;&nbsp; commandN\ndone<\/pre><p>Ou assim:<\/p><pre class=\"wp-block-preformatted\">for OUTPUT in $(Linux-Or-Unix-Command-Here)\ndo\n&nbsp;&nbsp;&nbsp; command1 on $OUTPUT\n&nbsp;&nbsp;&nbsp; command2 on $OUTPUT\n&nbsp;&nbsp;&nbsp; commandN\ndone<\/pre><h2 class=\"wp-block-heading\" id=\"h-exemplos-de-bash-for-loop\"><b>Exemplos de Bash For Loop<\/b><\/h2><p>Voc&ecirc; pode atualizar a sintaxe para fazer m&uacute;ltiplas opera&ccedil;&otilde;es. Lembre-se, antes de fazer qualquer coisa &eacute; preciso acessar sua <a href=\"\/pt\/alojamento-vps\">hospedagem de VPS<\/a>. <\/p><p>Confira este <a href=\"https:\/\/blog.hostinger.io\/pt-tutoriais\/como-se-conectar-servidor-vps-usando-terminal-ssh\/\" target=\"_blank\" rel=\"noopener noreferrer\">tutorial<\/a> caso voc&ecirc; esteja tendo problemas com isso. Ou, caso voc&ecirc; esteja com dificuldades quanto ao bash, confira nosso <a href=\"https:\/\/blog.hostinger.io\/pt-tutoriais\/comandos-bash-linux\/\" target=\"_blank\" rel=\"noopener noreferrer\">guia b&aacute;sico de comandos Bash<\/a>. N&atilde;o se esque&ccedil;a que fun&ccedil;&otilde;es bash precisam estar em um arquivo <b>.sh<\/b>. Para criar um, execute o comando:<\/p><pre class=\"wp-block-preformatted\">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-utilizar-bash-for-loop-para-criar-loops-infinitos\"><b>Utilizar Bash For Loop para Criar Loops Infinitos<\/b><\/h3><p>Uma vez ativado, este loop continuar&aacute; sendo executado at&eacute; que voc&ecirc; o interrompa pressionando Control + C. Neste caso, o termo &ldquo;Hello World&rdquo; continuar&aacute; reaparecendo sozinho.<\/p><pre class=\"wp-block-preformatted\">#!\/bin\/bash\nfor (( ; ; ))\ndo\n&nbsp;echo \"Hello World!\"\ndone<\/pre><h3 class=\"wp-block-heading\" id=\"h-utilizar-bash-for-loop-para-criar-um-loop-de-tres-expressoes\"><b>Utilizar Bash For Loop para Criar um Loop de Tr&ecirc;s Express&otilde;es<\/b><\/h3><p>O loop &eacute; composto de tr&ecirc;s express&otilde;es escritas &ndash; um iniciador (<b>EXP1<\/b>), uma condi&ccedil;&atilde;o (<b>EXP2<\/b>) e uma express&atilde;o de contagem (<b>EXP3<\/b>). Algumas pessoas chamam de loop estilo C devido a semelhan&ccedil;a de estrutura&ccedil;&atilde;o de c&oacute;digo. A sintaxe deste loop &eacute;:<\/p><pre class=\"wp-block-preformatted\">for (( EXP1; EXP2; EXP3 ))\ndo\n&nbsp;&nbsp;&nbsp; command1\n&nbsp;&nbsp;&nbsp; command2\n&nbsp;&nbsp;&nbsp; command3\ndone<\/pre><p>Exemplo:<\/p><pre class=\"wp-block-preformatted\">#!\/bin\/bash\nfor (( c=1; c&lt;=5; c++ ))\ndo &nbsp;\n&nbsp;echo \"Hai $c\"\ndone<\/pre><p>O c&oacute;digo diz que o valor inicial &eacute; <b>1<\/b>. O loop ser&aacute; executado desde que a condi&ccedil;&atilde;o <b>EXP2<\/b> seja verdadeira, o que significa que n&atilde;o deve ser maior do que <b>5<\/b>. Al&eacute;m disso, o sinal <b>++<\/b> indica que o incremento &eacute; <b>1<\/b>. Ent&atilde;o, ele repetir&aacute; o loop um por um, come&ccedil;ando do valor inicial. Resultado:<\/p><pre class=\"wp-block-preformatted\">Hai 1\nHai 2\nHai 3\nHai 4 \nHai 5<\/pre><h3 class=\"wp-block-heading\" id=\"h-utilizar-bash-for-loop-para-criar-um-loop-pule-e-continue\"><b>Utilizar Bash For Loop para Criar um Loop Pule e Continue<\/b><\/h3><p>A instru&ccedil;&atilde;o continue pula o loop para o valor inicial e continua o loop em seguida. &Eacute; assim que a sintaxe fica:<\/p><pre class=\"wp-block-preformatted\">for I in 1 2 3 4 5\ndo\nif [condition]\nthen\n&nbsp;&nbsp;&nbsp; continue &nbsp;&nbsp;#Go to next iteration of I in the loop and skip statements3\nfi\nstatement\ndone<\/pre><p>Seguindo esta sintaxe podemos criar um bash loop pule e continue assim:<\/p><pre class=\"wp-block-preformatted\">for i in {1..5}\ndo\n&nbsp;if [[ \"$i\" == '4' ]]\n&nbsp;then\n&nbsp;&nbsp;&nbsp;continue\n&nbsp;fi\n&nbsp;echo \"Hai $i4\"\ndone<\/pre><p>O resultado vai ser:<\/p><pre class=\"wp-block-preformatted\">Hai 1\nHai 2\nHai 3\nHai 5<\/pre><p>J&aacute; que o valor <b>4<\/b> fecha com a instru&ccedil;&atilde;o continue, o loop n&atilde;o executou o c&oacute;digo e continuou com o pr&oacute;ximo valor, que &eacute; o <b>5<\/b>.<\/p><h3 class=\"wp-block-heading\" id=\"h-utilizar-bash-for-loop-para-criar-um-loop-de-saida-condicional-com-pausa\"><b>Utilizar Bash for Loop para Criar um Loop de Sa&iacute;da Condicional com Pausa<\/b><\/h3><p>O loop permite que voc&ecirc; pare a opera&ccedil;&atilde;o se qualificar a condi&ccedil;&atilde;o estabelecida. Isso pode ser seguido por outra instru&ccedil;&atilde;o. Esta &eacute; a sintaxe:<\/p><pre class=\"wp-block-preformatted\">for I in 1 2 3 4 5\n&nbsp;do\n&nbsp;if [condition]\n&nbsp;then\n&nbsp;&nbsp;&nbsp;break\n&nbsp;fi\n&nbsp;statement\ndone<\/pre><p>Ao usar esta fun&ccedil;&atilde;o, nosso c&oacute;digo vai ficar assim:<\/p><pre class=\"wp-block-preformatted\">for city in Manila Bangkok Jakarta Kuala Lumpur\ndo\n&nbsp;if [[ \"$city\" == 'Jakarta' ]]; then\n&nbsp;&nbsp;&nbsp;break\n&nbsp;fi\n&nbsp;echo \"city: $city\"\ndone\n\necho 'Yes, that&rsquo;s all!'<\/pre><p>Finalmente, o resultado:<\/p><pre class=\"wp-block-preformatted\">city: Manila\ncity: Bangkok\nYes, that&rsquo;s all!<\/pre><p>A instru&ccedil;&atilde;o diz ao loop para para a opera&ccedil;&atilde;o uma vez que a condi&ccedil;&atilde;o for verdadeira (encontrar o termo <b>Jakarta<\/b>). Ele ent&atilde;o ir&aacute; executar o segundo c&oacute;digo, que &eacute; exibir o texto <b>Yes, that&rsquo;s all.<\/b><\/p><figure class=\"wp-block-image size-large\"><a href=\"\/pt\/alojamento-vps\" target=\"_blank\" rel=\"noreferrer noopener\"><img decoding=\"async\" width=\"1024\" height=\"300\" src=\"https:\/\/blog.hostinger.io\/pt-tutoriais\/wp-content\/uploads\/sites\/26\/2023\/02\/BR-VPS-hosting_in-text-banner-1-1024x300.png\" alt=\"\" class=\"wp-image-32923\" srcset=\"https:\/\/www.hostinger.com\/pt\/tutoriais\/wp-content\/uploads\/sites\/26\/2023\/02\/BR-VPS-hosting_in-text-banner-1.png 1024w, https:\/\/www.hostinger.com\/pt\/tutoriais\/wp-content\/uploads\/sites\/26\/2023\/02\/BR-VPS-hosting_in-text-banner-1-300x88.png 300w, https:\/\/www.hostinger.com\/pt\/tutoriais\/wp-content\/uploads\/sites\/26\/2023\/02\/BR-VPS-hosting_in-text-banner-1-150x44.png 150w, https:\/\/www.hostinger.com\/pt\/tutoriais\/wp-content\/uploads\/sites\/26\/2023\/02\/BR-VPS-hosting_in-text-banner-1-768x225.png 768w, https:\/\/www.hostinger.com\/pt\/tutoriais\/wp-content\/uploads\/sites\/26\/2023\/02\/BR-VPS-hosting_in-text-banner-1-1536x450.png 1536w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><\/a><\/figure><h2 class=\"wp-block-heading\" id=\"h-resumo\"><b>Resumo<\/b><\/h2><p>O Bash for loop &eacute; &oacute;timo para automatizar tarefas repetitivas. Voc&ecirc; pode fazer muito mais al&eacute;m dos exemplos b&aacute;sicos mostrados acima. Por exemplo, voc&ecirc; pode acompanhar arquivos e realizar muitas outras tarefas.<\/p><p>Tudo que voc&ecirc; precisa &eacute; escrever a sintaxe. Pode ser uma grande linha de aprendizado, mas este tutorial vai dar uma boa base para quem est&aacute; come&ccedil;ando. Lembre-se que a pr&aacute;tica leva a perfei&ccedil;&atilde;o, ent&atilde;o continue praticando!<\/p>\n","protected":false},"excerpt":{"rendered":"<p>O for loop &eacute; uma das instru&ccedil;&otilde;es mais b&aacute;sicas em diversas linguagens de programa&ccedil;&atilde;o. Neste tutorial, vamos explicar como &eacute; utilizado na linguagem de programa&ccedil;&atilde;o Bash &nbsp;&ndash; justificando o nome, &ldquo;bash for loop&rdquo;. Um for loop &eacute; uma instru&ccedil;&atilde;o de itera&ccedil;&atilde;o, significando que pode ser executada repetidamente. Digamos que voc&ecirc; quer executar uma instru&ccedil;&atilde;o 5 [&#8230;]<\/p>\n<p><a class=\"btn btn-secondary understrap-read-more-link\" href=\"\/pt\/tutoriais\/bash-for-loop-guia\">Read More&#8230;<\/a><\/p>\n","protected":false},"author":78,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"rank_math_title":"Comando Bash For Loop - Guia B\u00e1sico e Exemplos","rank_math_description":"O For Loop \u00e9 um dos comando mais b\u00e1sico em diversas linguagens de programa\u00e7\u00e3o. Conhe\u00e7a mais sobre o Bash For Loop neste tutorial!","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\/pt\/tutoriais\/wp-json\/wp\/v2\/posts\/15247","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.hostinger.com\/pt\/tutoriais\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.hostinger.com\/pt\/tutoriais\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.hostinger.com\/pt\/tutoriais\/wp-json\/wp\/v2\/users\/78"}],"replies":[{"embeddable":true,"href":"https:\/\/www.hostinger.com\/pt\/tutoriais\/wp-json\/wp\/v2\/comments?post=15247"}],"version-history":[{"count":6,"href":"https:\/\/www.hostinger.com\/pt\/tutoriais\/wp-json\/wp\/v2\/posts\/15247\/revisions"}],"predecessor-version":[{"id":38298,"href":"https:\/\/www.hostinger.com\/pt\/tutoriais\/wp-json\/wp\/v2\/posts\/15247\/revisions\/38298"}],"wp:attachment":[{"href":"https:\/\/www.hostinger.com\/pt\/tutoriais\/wp-json\/wp\/v2\/media?parent=15247"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.hostinger.com\/pt\/tutoriais\/wp-json\/wp\/v2\/categories?post=15247"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.hostinger.com\/pt\/tutoriais\/wp-json\/wp\/v2\/tags?post=15247"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}