Oracle Live

07/10/2016

LINUX – SCRIPTING III Bucles

Filed under: Sistemas — mogukiller @ 12:20 pm
Tags:

Os dejo un conjunto de ejemplos que utilizar bucles para vuestros scripts.

- Bucle infinito

#!/bin/bash
echo "pid is $$"
while true
do
   sleep 60
done

- For .. del 1 al 10

#!/bin/ksh
for i in {1..10}
do
  
done

-- While comprueba numero parametros.

#!/bin/ksh
while [ $# -eq 0  ]
do

done

-- Repetimos mientras se cumpla una condicion

while [ $i -lt 5 ]
do
i=$[$i+1]
done

-- Pide confirmacion para seguir

doContinue=n
echo -n "Do you really want to continue? (y/n) " 
read doContinue

if [ "$doContinue" != "y" ]; then
      echo "Quitting..."
      exit
fi

-- Bucle para recorer un fichero

while read linea
do

done < listado_tablas.lst

-- Bucle con la salida de un comando

for linea in $(olsnodes)
do
 echo $linea
done

-- Genera un bucle con 100 intereacciones

for i in $(seq 100); do
 echo $i
done

-- Bucle que mueve todos ficheros que cumplen un patron

for FICHERO in *.log; do
 mv $FICHERO ${FICHERO}_bck
done

-- Esperamos hasta que se cree el fichero

util [ -f /tmp/fichero.tmp ]; do
echo "Esperando ..."
sleep 1
done

NOTA: Se evalua hasta que la opcion sea verdadera.

-- Procesamos las lineas de un fichero

--BUCLE1

for linea in $(cat fichero.txt); do
echo $linea
done

-- BUCLE2

cat fichero.txt | while read linea; do
echo $linea
done

-- UPTIME DE UN CLUSTER

for i in 1 2 3 4; do ssh bebd$i 'uptime'; done


-- Renombramos los ficheros de una extension dada

#!/bin/bash

ext_old=TXT
ext_new=txt

for i in $(ls -l *.$ext_old)
do
mv -f $i $(i%.$ext_old).$ext_new
done

-- Borramos todos los ficheros que empiezan por  a y b

for file in [ab]*
do
echo $file
done

-- Procesamos las lines devueltas por un parametro

for file in `ls -1tr /var/log/sa/sa[0-9][0-9]`
do
	echo $file
done

/var/log/sa/sa27
/var/log/sa/sa28
/var/log/sa/sa29
/var/log/sa/sa30
/var/log/sa/sa01
/var/log/sa/sa02

-- Configuramos el tiempo maximo de ejecucion de un script

TIME_LIMIT=10
while [ "$SECONDS" -le "$TIME_LIMIT" ];  do
		echo Segundos: $SECONDS
		sleep 1
done

-- Modificamos el separador de lista

echo "======= IFS ========="
IFS="|"
LISTA="1|2|3|4|5"

for i in $LISTA
do
	echo $i
done

Dejar un comentario »

Aún no hay comentarios.

RSS feed for comments on this post. TrackBack URI

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s

Crea un blog o un sitio web gratuitos con WordPress.com.

A %d blogueros les gusta esto: