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=1while[ 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# DBZecho "Sentencias break y continue"for fil in$(ls)dofor nombre in{1..3}doif[ $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;doif[[ $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:LuberCuevaecho "SENTENCIAS BREAK Y CONTINUE"for file in$(ls)dofor 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_ ...).
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_ ...).
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 fish
No 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:JoseSuarezecho "Sentencias de Break y continue"for fil in$(ls)dofor nombre in{1..4}doif[ $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# AuthorDiegoBeltran histagram @diegodevelops
echo "Break y continue"for fil in$(ls)dofor nombre in{1..4}doif[ $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
¿Por qué se imprime en la terminal el archivo apache-tomcat-8.5.35.zip? El último en aparecer no tendría que ser el 9_options.sh?
La salida del comando ordena por el valor de los caracteres. Los números vienen antes que las letras