{"id":9107,"date":"2019-09-13T10:19:04","date_gmt":"2019-09-13T10:19:04","guid":{"rendered":"https:\/\/blog.hostinger.io\/es-tutoriales\/?p=9107"},"modified":"2025-03-26T09:04:43","modified_gmt":"2025-03-26T08:04:43","slug":"bash-for-loop-guia-ejemplos","status":"publish","type":"post","link":"\/es\/tutoriales\/bash-for-loop-guia-ejemplos","title":{"rendered":"Gu\u00eda y ejemplos del bucle for en Bash (Bash For Loop)"},"content":{"rendered":"<p>Un bucle for es una de las declaraciones principales en varios lenguajes de programaci&oacute;n y ayuda en la gesti&oacute;n de tu <a href=\"\/es\/servidor-vps\">servidor VPS<\/a>. Aqu&iacute;, explicaremos c&oacute;mo se usa en el <a href=\"\/es\/tutoriales\/bash-script-linux\/\">lenguaje de programaci&oacute;n bash<\/a>, de ah&iacute; el nombre, &laquo;bucle for para bash &ndash; bash for loop&raquo;. &iexcl;Prep&aacute;rate para agregar una nueva herramienta a tu arsenal de desarrollador!<\/p><figure class=\"wp-block-image size-large\"><a href=\"https:\/\/assets.hostinger.com\/content\/tutorials\/pdf\/Speed-Up-Your-Website-ES.pdf\" target=\"_blank\" rel=\"noreferrer noopener\"><img decoding=\"async\" width=\"1024\" height=\"283\" src=\"https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/32\/2022\/12\/eBook-Speed-Up-your-website-ES.png\/public\" alt=\"\" class=\"wp-image-25983\" srcset=\"https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/32\/2022\/12\/eBook-Speed-Up-your-website-ES.png\/w=1024,fit=scale-down 1024w, https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/32\/2022\/12\/eBook-Speed-Up-your-website-ES.png\/w=300,fit=scale-down 300w, https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/32\/2022\/12\/eBook-Speed-Up-your-website-ES.png\/w=150,fit=scale-down 150w, https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/32\/2022\/12\/eBook-Speed-Up-your-website-ES.png\/w=768,fit=scale-down 768w, https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/32\/2022\/12\/eBook-Speed-Up-your-website-ES.png\/w=1536,fit=scale-down 1536w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><\/a><\/figure><p>Un bucle for es una declaraci&oacute;n de iteraci&oacute;n, lo que significa que puedes ejecutar c&oacute;digo repetidamente. Digamos que quieres ejecutar una instrucci&oacute;n 5 veces. En lugar de escribir cinco c&oacute;digos separados, puedes escribir una sintaxis de bucle for (for loop) una sola vez. Entremos en detalles, &iquest;de acuerdo?<\/p><h2 class=\"wp-block-heading\" id=\"h-sintaxis-del-bucle-for-para-bash\">Sintaxis del bucle for para bash<\/h2><p>B&aacute;sicamente, la sintaxis del bucle for (<a href=\"https:\/\/es.wikipedia.org\/wiki\/Bucle_for\" target=\"_blank\" rel=\"noopener\">for loop<\/a>) en Bash m&aacute;s simple repite la aparici&oacute;n de un conjunto de una variable. La sintaxis generalmente se ve as&iacute;:<\/p><pre class=\"wp-block-preformatted\">for VARIABLE in 1 2 3 4 5 .. N\nEjecute el siguiente comando:\n&nbsp;&nbsp;&nbsp; command1\n&nbsp;&nbsp;&nbsp; command2\n&nbsp;&nbsp;&nbsp; commandN\ndone<\/pre><p>En el mundo real, esta sintaxis se ver&iacute;a como en el siguiente ejemplo:<\/p><pre class=\"wp-block-preformatted\">#!\/bin\/bash\nfor i in 1 2 3 4 5\ndo\n&nbsp;echo \"Hello $i\"\ndone<\/pre><p>La ejecuci&oacute;n del archivo bash genera el siguiente texto:<\/p><pre class=\"wp-block-preformatted\">Hello 1\nHello 2\nHello 3\nHello 4 \nHello 5<\/pre><p>Inspeccionemos cada elemento:<\/p><ul class=\"wp-block-list\">\n<li><strong>#!\/bin\/bash<\/strong>: muestra que el c&oacute;digo es un script de bash<\/li>\n\n\n\n<li><strong>i<\/strong>: es un marcador de posici&oacute;n para una variable. Por su parte, $i es el valor individual de la variable. Tambi&eacute;n puedes escribirlo como <strong>c\/$c<\/strong> o con cualquier otro nombre<\/li>\n\n\n\n<li><strong>in<\/strong>: separa la variable y los elementos que siguen<\/li>\n\n\n\n<li><strong>1 2 3 4 5<\/strong>: es un ejemplo de elementos en los que deseas realizar la instrucci&oacute;n<\/li>\n\n\n\n<li><strong>do<\/strong>: es la palabra clave que inicia los bucles. Ejecutar&aacute; la instrucci&oacute;n n veces, siendo n el n&uacute;mero total de elementos. Aqu&iacute;, el valor de n es 5<\/li>\n\n\n\n<li><strong>echo &laquo;Hello: $i&raquo;<\/strong>: es el c&oacute;digo que repetiremos n veces. Recuerda que las comillas convierten cualquier cosa dentro de ellas en una variable.<\/li>\n\n\n\n<li><strong>done<\/strong>: detiene el bucle<\/li>\n<\/ul><p>El c&oacute;digo se puede escribir de manera diferente seg&uacute;n la versi&oacute;n de bash que est&eacute;s ejecutando:<\/p><p>Bash versi&oacute;n 3.0 o superior puede acortar el rango con &raquo; . . &laquo;.<\/p><pre class=\"wp-block-preformatted\">#!\/bin\/bash\nfor i in {1. .5}\ndo\n&nbsp;&nbsp;echo \"Hai $i\"\ndone<\/pre><p>Bash versi&oacute;n 4.0 o superior te permite usar la sintaxis <strong>{START. .END. .INCREMENT}<\/strong>.<\/p><pre class=\"wp-block-preformatted\">#!\/bin\/bash\nfor i in {0. .8. .2}\ndo\n&nbsp;&nbsp;echo \"Hai $i\"\ndone<\/pre><p>El resultado se ver&aacute; as&iacute;:<\/p><pre class=\"wp-block-preformatted\">Hai 0\nHai 2\nHai 4\nHai 6 \nHai 8<\/pre><p>Las otras dos sintaxis comunes son:<\/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>O as&iacute;:<\/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-ejemplos-del-bucle-for-para-bash\">Ejemplos del bucle for para bash<\/h2><p>Puedes actualizar la sintaxis para realizar m&uacute;ltiples operaciones. Recuerda que antes de hacer cualquier cosa deber&aacute;s iniciar sesi&oacute;n en tu servidor VPS. Si tienes alg&uacute;n problema, este <a href=\"\/es\/tutoriales\/conectar-usando-terminal-putty-ssh\/\">tutorial<\/a> te pondr&aacute; en el camino correcto. Mientras tanto, si tienes problemas con bash, deber&iacute;as consultar nuestra gu&iacute;a sobre las funciones b&aacute;sicas de bash. Recuerda que las funciones bash deben estar en un archivo <strong>.sh<\/strong>. Para crear uno, ejecuta lo siguiente en la l&iacute;nea de comando:<\/p><pre class=\"wp-block-preformatted\">vim NombreDeArchivo.sh<\/pre><p>Esto crear&aacute; un archivo .sh y lo abrir&aacute; en el editor VIM. Puedes obtener m&aacute;s informaci&oacute;n en el art&iacute;culo sobre las funciones b&aacute;sicas de bash mencionado anteriormente.<\/p><h3 class=\"wp-block-heading\" id=\"h-usando-bucle-for-para-crear-un-bucle-infinito\">Usando bucle for para crear un bucle infinito<\/h3><p>Una vez activado, este bucle seguir&aacute; ejecutando el c&oacute;digo hasta que lo detengas presionando Control + C. En este caso, la frase &laquo;Hola mundo&raquo; seguir&aacute; apareciendo por s&iacute; misma.<\/p><pre class=\"wp-block-preformatted\">#!\/bin\/bash\nfor (( ; ; ))\ndo\n&nbsp;&nbsp;echo \"&iexcl;Hola mundo!\"\ndone<\/pre><h3 class=\"wp-block-heading\" id=\"h-usando-bash-for-loop-para-crear-un-bucle-de-tres-expresiones\">Usando Bash For Loop para crear un bucle de tres expresiones<\/h3><p>Este bucle se compone de tres expresiones escritas: un inicializador (<strong>EXP1<\/strong>), una condici&oacute;n (<strong>EXP2<\/strong>) y una expresi&oacute;n de conteo (<strong>EXP3<\/strong>). A veces la gente lo llama el bucle de estilo C debido al parecido cercano en la estructura del c&oacute;digo. La sintaxis de este bucle es la siguiente:<\/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>Aqu&iacute; hay un ejemplo que puedes probar t&uacute; mismo:<\/p><pre class=\"wp-block-preformatted\">#!\/bin\/bash\nfor (( c=1; c&lt;=5; c++ ))\ndo &nbsp;\n&nbsp;&nbsp;echo \"Hai $c\"\ndone<\/pre><p>El c&oacute;digo dice que el valor inicial es <strong>1<\/strong>. El bucle se ejecutar&aacute; siempre que la condici&oacute;n en <strong>EXP2<\/strong> sea &#8203;&#8203;verdadera, lo que significa que no debe ser mayor que <strong>5<\/strong>. Adem&aacute;s, el signo <strong>++<\/strong> muestra que el incremento es <strong>1<\/strong> . Luego repetir&aacute; el bucle uno por uno a partir del 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-usando-el-bucle-for-para-bash-para-crear-el-bucle-omitir-y-continuar\">Usando el bucle for para Bash para crear el bucle omitir y continuar<\/h3><p>La instrucci&oacute;n <em>continue<\/em> omite el bucle para el valor indicado y contin&uacute;a con el bucle siguiente. As&iacute; es como se ver&iacute;a la sintaxis:<\/p><pre class=\"wp-block-preformatted\">for I in 1 2 3 4 5\ndo\n&nbsp;if [condition]\n&nbsp;then\n&nbsp;&nbsp;&nbsp; continue &nbsp;&nbsp;#Pasa a la siguiente iteraci&oacute;n de I en el bucle y omite la instrucci&oacute;n o statement\n&nbsp;fi\n&nbsp;statement\ndone<\/pre><p>Siguiendo la sintaxis podemos crear un bucle de omitir y continuar (skip and continue loop) como este:<\/p><pre class=\"wp-block-preformatted\">for i in {1..5}\ndo\n  if [[ \"$i\" == '4' ]]\n  then\n    continue\n  fi\n  echo \"Hai $i4\"\ndone<\/pre><p>El resultado ser&iacute;a:<\/p><pre class=\"wp-block-preformatted\">Hai 1\nHai 2\nHai 3\nHai 5<\/pre><p>Como el valor <strong>4<\/strong> coincid&iacute;a con la instrucci&oacute;n <em>continue<\/em>, el bucle no ejecut&oacute; el c&oacute;digo y pas&oacute; al siguiente valor, que es <strong>5<\/strong>.<\/p><figure class=\"wp-block-image size-large\"><a href=\"\/es\/hosting-web\" target=\"_blank\" rel=\"noreferrer noopener\"><img decoding=\"async\" width=\"1024\" height=\"300\" src=\"https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/32\/2023\/02\/ES-Web-hosting_in-text-banner.png\/public\" alt=\"\" class=\"wp-image-29291\" srcset=\"https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/32\/2023\/02\/ES-Web-hosting_in-text-banner.png\/w=1024,fit=scale-down 1024w, https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/32\/2023\/02\/ES-Web-hosting_in-text-banner.png\/w=300,fit=scale-down 300w, https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/32\/2023\/02\/ES-Web-hosting_in-text-banner.png\/w=150,fit=scale-down 150w, https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/32\/2023\/02\/ES-Web-hosting_in-text-banner.png\/w=768,fit=scale-down 768w, https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/32\/2023\/02\/ES-Web-hosting_in-text-banner.png\/w=1536,fit=scale-down 1536w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><\/a><\/figure><h3 class=\"wp-block-heading\" id=\"h-usando-bash-for-loop-para-crear-una-salida-condicional-con-break-loop\">Usando Bash for Loop para crear una salida condicional con Break Loop<\/h3><p>Este bucle permite detener la operaci&oacute;n si cumple con la condici&oacute;n establecida. Esto puede estar seguido por otra instrucci&oacute;n. Aqu&iacute; est&aacute; la sintaxis:<\/p><pre class=\"wp-block-preformatted\">for I in 1 2 3 4 5\n  do\n  if [condition]\n  then\n    break\n  fi\n  statement\ndone<\/pre><p>Al usar esta funci&oacute;n, nuestro c&oacute;digo se ver&iacute;a as&iacute;:<\/p><pre class=\"wp-block-preformatted\">for ciudad in Manila Bangkok Yakarta Kuala Lumpur\ndo\n  if [[ \"$ciudad\" == 'Yakarta' ]]; then\n    break\n  fi\n  echo \"ciudad: $ciudad\"\ndone\n\necho 'S&iacute;, &iexcl;eso es todo!'<\/pre><p>Y por &uacute;ltimo el resultado:<\/p><pre class=\"wp-block-preformatted\">ciudad: Manila\nciudad: Bangkok\nS&iacute;, &iexcl;eso es todo!<\/pre><p>La instrucci&oacute;n le dice al bucle que interrumpa la operaci&oacute;n cuando la condici&oacute;n sea verdadera (encontrar el t&eacute;rmino <strong>Yakarta<\/strong>). Luego ejecutar&aacute; el segundo c&oacute;digo, que imprime un texto que dice <strong>S&iacute;, &iexcl;eso es todo!<\/strong><\/p><h2 class=\"wp-block-heading\" id=\"h-resumen\">Resumen<\/h2><p>Bash for loop es ideal para automatizar tareas repetitivas. Adem&aacute;s de los ejemplos b&aacute;sicos anteriores, puedes hacer mucho m&aacute;s. Por ejemplo, puedes rastrear archivos y realizar muchas otras tareas. &iexcl;La lista continua!<\/p><p>Todo lo que tienes que hacer es escribir la sintaxis. Puede que la curva de aprendizaje sea dif&iacute;cil, pero leer esta introducci&oacute;n es un buen comienzo. &iexcl;La pr&aacute;ctica hace al maestro! &iexcl;Buena suerte!<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Un bucle for es una de las declaraciones principales en varios lenguajes de programaci&oacute;n y ayuda en la gesti&oacute;n de tu servidor VPS. Aqu&iacute;, explicaremos c&oacute;mo se usa en el lenguaje de programaci&oacute;n bash, de ah&iacute; el nombre, &laquo;bucle for para bash &ndash; bash for loop&raquo;. &iexcl;Prep&aacute;rate para agregar una nueva herramienta a tu arsenal [&#8230;]<\/p>\n<p><a class=\"btn btn-secondary understrap-read-more-link\" href=\"\/es\/tutoriales\/bash-for-loop-guia-ejemplos\">Read More&#8230;<\/a><\/p>\n","protected":false},"author":85,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"rank_math_title":"Gu\u00eda Y Ejemplos Del Bucle For En Bash (Bash For Loop)","rank_math_description":"Usar el bucle for en Bash es una excelente forma de automatizar tareas repetitivas y mejorar tu trabajo. \u00a1Aprende aqu\u00ed los fundamentos del Bash For Loop!","rank_math_focus_keyword":"bash for loop","footnotes":""},"categories":[5700],"tags":[14194],"class_list":["post-9107","post","type-post","status-publish","format-standard","hentry","category-vps","tag-bash-for-loop"],"hreflangs":[{"locale":"en-US","link":"https:\/\/www.hostinger.com\/tutorials\/bash-for-loop","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":"en-UK","link":"https:\/\/www.hostinger.com\/uk\/tutorials\/bash-for-loop","default":0},{"locale":"en-MY","link":"https:\/\/www.hostinger.com\/my\/tutorials\/bash-for-loop","default":0},{"locale":"en-PH","link":"https:\/\/www.hostinger.com\/ph\/tutorials\/bash-for-loop","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":"es-AR","link":"https:\/\/www.hostinger.com\/ar\/tutoriales\/bash-for-loop-guia-ejemplos","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}],"acf":[],"_links":{"self":[{"href":"https:\/\/www.hostinger.com\/es\/tutoriales\/wp-json\/wp\/v2\/posts\/9107","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.hostinger.com\/es\/tutoriales\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.hostinger.com\/es\/tutoriales\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.hostinger.com\/es\/tutoriales\/wp-json\/wp\/v2\/users\/85"}],"replies":[{"embeddable":true,"href":"https:\/\/www.hostinger.com\/es\/tutoriales\/wp-json\/wp\/v2\/comments?post=9107"}],"version-history":[{"count":11,"href":"https:\/\/www.hostinger.com\/es\/tutoriales\/wp-json\/wp\/v2\/posts\/9107\/revisions"}],"predecessor-version":[{"id":46362,"href":"https:\/\/www.hostinger.com\/es\/tutoriales\/wp-json\/wp\/v2\/posts\/9107\/revisions\/46362"}],"wp:attachment":[{"href":"https:\/\/www.hostinger.com\/es\/tutoriales\/wp-json\/wp\/v2\/media?parent=9107"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.hostinger.com\/es\/tutoriales\/wp-json\/wp\/v2\/categories?post=9107"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.hostinger.com\/es\/tutoriales\/wp-json\/wp\/v2\/tags?post=9107"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}