Estos tutoriales se van basando en el conocimiento previamente adquirido,en las partes anteriores,asi que puedes revisarlas
Parte 1
Parte 2
Parte 3
En esta ocacion veremos los bucles for while y until
for
For es una instruccion mas en nuestro script programado para realizar una determinada accion en este caso for se refiere cual por cada elemento en determinada variable se repetirán determinadas acciones, esto hasta que lo haya hecho con todos los elementos indicados, entonces el ciclo habrá terminado y solo entonces.
Ejemplo de scipt
Los llamado for son mas que nada para contar
Por ejemplo para contar del uno al diez seria este un script usando for
#!/bin/bash # Hashbang
for i in 1 2 3 4 5 6 7 8 9 10 # Comienza instruccion
do # Termina instrucción
echo "Numero $1" # Se ejecuta la accion que convierte i en 1,2,3,etc y lo llamamos
done # Termina el script
Pero si quisieramos contar del 1 al 1000?
No se preocupen para eso solo se usaria esta sintaxis
#!/bin/bash # Hashbang
for i in {1 .. 1000} # Comienza la instruccion
do # Termina la instruccion
echo "Numero $i" # LLamamos i que for lo convirtio en 1,2,3,etc
done # Termina el script
Bucle infinito con for
El bucle infinito es algo que nunca terminal y en bash se define así
#!/bin/bash
for (( ; ; ))
do
echo "Bucle infinito solo se cierra con CTRL+C "
done
Uso util
Bien,for no solo sirve para ese tipo de cosas ya que se puede fucionar con lo que previamente hemos visto y podriamos crear un script como este,como por ejemplo para saber cuantos archivos de configuración tenemos en /etc
#!/bin/bash # Hashbang
for file in /etc # Comienza la instruccion "para archivo en /etc"
do # Termina la instrucción
if [ "${file}" == "/etc" ] # Si file es /etc...
then
archivos=`ls /etc | grep -c .conf` # Ejecuta este pipe
echo "Tienes ${archivos} archivos de configuracion en ${file}" # Ahora lo llama y se añade texto
break # Comando break termina con el bucle
fi # Termina condición if
done # Termina bucle
Este script nos enumera los archivos de confgiruracion que como sabemos o si no saben los archivos de configuracion de Linux y otros Unix se guardan en /etc
Esto seria lo mismo que usar este pipe
ls /etc | grep -c .conf
Pero bueno ese es un ejemplo otro seria este para listar los archivos pero ponerle un texto antes
#!/bin/bash
for i in $( ls ); # i toma el valor ls
echo Archivo: $i # Llamamos i
done # Termina el código y i puede tomar un nuevo valor
Bien un script util
Si tienen el programa host instalado(parecido a ping)
Cheken este script
#!/bin/bash
for HOST in www.itimetux.com www.google.com
do
echo "##################"
echo $HOST
echo "##################"
/usr/bin/host $HOST # Edita esta parte " busca con whereis host"
echo "##################"
done
También lo podemos hacer con ping y mas util cheken
#!/bin/bash
echo "Control+C para pasar al siguiente"
for PING in www.itimetux.com www.google.com
do
echo "-------------------"
echo $PING
echo "-------------------"
/bin/ping $PING # Edita esta parte busca el ejecutable con "whereis ping"
echo "########################################"
done
While
While es una instrucción que sirve para generar bucles, en lq cual la instrucción se ejecuta de forma repetida hasta que se cumpla una condición.
While cerciorara que se cumpla la condición logica y si se cumple se ejecutara lo que este entre do y done.
Ejemplo de bucle
Por ejemplo vamos ha hacer un script para hackear (fake),los scripts para pentest normalmente se escriben en perl,python o lua pero vamos ha hacer algo sencillo
#!/bin/bash
termina=40000
i=0;
while [[ $termina -gt $i ]]
do
echo Probando $i passwords
let i=$i+1
done
echo 'No se encontraron coincidencias'
Lo que hace es mostrar lo que haría un brute force o ataque con fuerza bruta,pero en realidad solo esta contando del 0 al 40000,lo explico
#!/bin/bash # Hashbang
termina=40000 # Donde termina
i=0; # Donde comienza
while [[ $termina -gt $i ]] # La estructura while añadiendo el formato -gt(que veremos mas adelante)
do # Inicia lo que queramos ejecutar
echo Probando $i passwords # Llamamos a i y añadimos texto
let i=$i+1 # let se usa para poder trabajar con números(lo veremos mas adelante) se suma por 1
done # Termina lo que queramos ejecutar
echo 'No se encontraron coincidencias' # Se ejecuta algo nuevo
Bucle infinito while
#!/bin/bash
while :
do
echo "Bucle infinito solo se cierra con CTRL+C "done
Until
El bucle until es igual a while podemos usar esta estructura igual
#!/bin/bash
numero=0
until [ $numero -gt 40000 ]; do # Se usa until
echo "Probando $numero"
let numero=$numero+1
done
Eso es todo por ahora
No hay comentarios.:
Publicar un comentario
Los comentarios serán revisados antes de ser publicados.