Nicolás Díaz
Vicente Miño Ibarra
Gustavo Hernan Tiseira
Jovanny Ramírez Chimal
Luis Chavez
Ariadna B
Daniel Alejandro Franco Meneses
Jhon Romero
Jordan Arellano Rosero
Jesus Silva
DAVID EDUARDO BAEZ SANCHEZ
Gustavo Andres Niño Forero
Alfonso Adame Rueda
Jose Suarez
Gustavo Wilgenhoff
Luberliz Cueva Llanos
Denisse Godoy
Denisse Godoy
Leandro Gabriel Amodey
Daniel Felipe Ibarra Banquez
Erik Ucenik
Jose Miguel Diaz
Jonhatan prieto mora
Eddie Andres Rios Elgueta
Jhoan David Rojas
Jose Suarez
Enzo Venturi
Diego Andrés Beltrán Garavito
Marvin Javier Santos Fernández
El tema es que el tema del tema de todo este tema es todo un tema.
Jajajaja estaba esperando este comentario
Jaja me da pena el profe, porque lo hace sin querer.. se le re pego la palabra, es un todo un tema!
tema...tema...tema....tema...tema
si dice demasiado esa palabra.
Tal vez en Ecuador la palabra "tema" es una palabra comodín que se puede utilizar para diferentes "temas" jejeje. ntc :P
Este curso lo deberían renovar
Aplicando lo aprendido 🤣🤣🤣
infinito_tema=1 while [ infinito_tema = infinito_tema ]; do echo "EL TEMA $infinito_tema!" infinito_tema=$(( infinito_tema + 1 )) done
Ya enserio, puede trabajar en mejorar eso, enseña super bien pero la muletilla se vuelve cansona
La explicación es
Que en el intérprete de comandos lee todo el if por que esta dentro de un bucle for y el break de este ‘if’ termina el bucle.
Pero hay un elsif que está anidado y su condición es que, si detecta algún $file que empiece con 4 entonces continue pero esta función pasa por alto dicho archivo ocultándolo, por lo tanto el bucle termina cuando llega al 10_download.sh
En resumidas cuentas la orden del break significa cuando finaliza y el continue lo oculta iterando hasta su condición principal y como estas condiciones están dentro del bucle for
Bingo
Es todo un tema viste
Listo y entendido
#!/bin/bash # Programa para utilizar Break y Continue # DBZ echo "Sentencias break y continue" for fil in $(ls) do for nombre in {1..3} do if [ $fil = "10_download.sh" ]; then echo "Se encontro el archivo $fil y por eso se termian el bucle interno" echo "************************************************************" break; elif [[ $fil == 4* ]]; then echo "Se encontro el archivo $fil y continua" echo "************************************************************" continue; else echo "Nombre archivo:$fil _ $nombre" fi done done
Pésimo instructor, definitivamente saber sobre un "TEMA" no significa que sepa explicarlo.
este es mi avance en el curso,con este curso de programación bash he reforzado mas el concepto de bucles que se usan en lenguajes de programación como java o php, en este caso aplicado al bash
Que tema con Marco
Ejemplo para leer contenido de archivos y saltear los comantarios
echo "Break y continue. Leo el contenido de los archivo" echo "Quito los comentarios" echo "No imprimo los archivo que comienzan con 1" for file in $(ls *.sh) do echo "--------------- $file ---------------------" while read -r linea; do if [[ $linea =~ ^#.*$ ]]; then continue; fi if [[ $file == 1* ]]; then break; fi echo "$linea" done < "$file" done
# !/bin/bash # Programa sobre el uso de break y continue # Autor: Luber Cueva echo "SENTENCIAS BREAK Y CONTINUE" for file in $(ls) do for name in {1..4} do echo "Hola" if [ $file = "10_download.sh" ]; then break; elif [[ $file == 4* ]]; then continue; else echo "File archivo: $file _ $name" fi echo "Chao" done done
El efecto de break es que solo llega a imprimir un "hola" y termina el for de adentro. Luego pasará al for de afuera, o sea que tendrá otro archivo (11_ ...).
SENTENCIAS BREAK Y CONTINUE Hola Hola File archivo: 11_ifElseIfElse.sh _ 1 Chao
En cambio con continue, imprime varios "Hola" y ya no los "Chao" y es por que a partir del continue ya no ejecuta lo que está a delante, sino que pasa a la siguiente iteración (continua con el archivo 4_ ...).
Hola File archivo: 3_tipoOperadores.sh _ 3 Chao Hola File archivo: 3_tipoOperadores.sh _ 4 Chao Hola Hola Hola Hola Hola File archivo: 5_substitutionCommand.sh _ 1 Chao Hola File archivo: 5_substitutionCommand.sh _ 2 Chao
¿Por qué la linea "elif [[ $fil == 4* ]]; then" no funciona si ponemos el 4* entre comillas?
Con esto creo que pude resolver mi pregunta: https://stackoverflow.com/a/2172367
La razon principal es porque cuando usas comillas estas "casteando" el texto que esta entre ellas como si fueran un string, y de esa forma le quitas la funcionalidad al * convirtiendolo en parte de la cadena. De la otra forma bash interpreta bien que queres decir 4 y cualquier cosa que venga atras, como si fuera una expresion regular.
¿por que en if usa = y en elif usa == para comparar si son iguales a algo?
= Presente en todas las shells que sigan el estandar POSIX. Utiliza este.== Presente solo en bash. Puedes utilizarlos, pero tus scripts serán menos compatibles en otras shells como zsh o fishNo me quedo claro el uso del break con esta clase. Por otro lado, no queda muy claro el uso del "== *4" en el elif.
el ==4* lo que indica es que si el nombre del archivo inicia con el numero 4.
Se trata de una wild card, es como un regex (Regular expresion) pero mas simple, y por lo visto es quivalente usar en bash == e =, sin embargo una de estas es incompatible con otras shells... (No sé cual xd)
por lo general continue se utiliza para poder saltar una iteración en especifico, ya que si quiero que mi programa salte el numero 3 de un bucle de 10 iteraciones simplemente se coloca continue a la iteración
Codigo:
# ! /bin/bash # Programa para ejemplificar el uso de break y continue # Autor: Jose Suarez echo "Sentencias de Break y continue" for fil in $(ls) do for nombre in {1..4} do if [ $fil = "10_download.sh" ]; then break; elif [[ $fil == 4* ]]; then continue; else echo "Nombre Archivo: $fil _ $nombre" fi done done
Como desearía que bash soportase OOP 😅
Hola, dejo mis apuntes.
Saludos
# ! /bin/bash # Programa para uso de break y continue # Author Diego Beltran histagram @diegodevelops echo "Break y continue" for fil in $(ls) do for nombre in {1..4} do if [ $fil = "10_download.sh" ]; then break; elif [[$file == 4* ]]; then continue; else echo "nombre del archivo es:$fil y cuenta del anidado es $nombre" fi done done