Sunteți pe pagina 1din 22

Curso de Linux Intermedio

Mauricio Vergara Ereche


<mave007@gmail.com>

Curso Linux Intermedio UTFSM 2006


Valores Booleanos

Comando ejecutado exitosamente
– Retorno 0

Comando ejecutado fallido
– Retorno distinto de 0


Para conocer retornos, se puede ocupar
– echo $?

Curso Linux Intermedio UTFSM 2006


Cortocircuitos (1 de 2)
AND Lógico:
– comando1 && comando2

comando2 es ejecutado, sí y sólo sí, comando1 tiene
un retorno igual a 0


OR Lógico:
– comando1 || comando2

comando2 es ejecutado, sí y sólo sí, comando1 tiene
un retorno distinto a 0

Curso Linux Intermedio UTFSM 2006


Cortocircuitos (2 de 2)

● true || true TRUE ● true && true TRUE


● true || false TRUE ● true && false FALSE
● false || true TRUE ● false && true FALSE
● false || false FALSE ● false && false FALSE

Curso Linux Intermedio UTFSM 2006


Cortocircuitos (ejemplos)
true && echo hola
false && echo hola

true || echo hola
false || echo hola

test ­d lala && echo lala ya existe || mkdir lala

Curso Linux Intermedio UTFSM 2006


Ocupando Variables

VarX=VALOR
– echo $VarX

VALOR


VarX=$HOME
– echo $VarX

/home/mave

– cd $VarX

cd /home/mave

Curso Linux Intermedio UTFSM 2006


Ocupando Vectores

VectorX=(valor0 valor1 valor2 · · · valorN)
– echo ${VectorX[0]}

valor0
– echo ${VectorX[40]}

valor40
– echo ${VectorX[N]}

valorN

– echo ${VectorX[@]}

valor0 valor1 valor2 · · · valorN

Curso Linux Intermedio UTFSM 2006


Declarando Variables y/o Vectores

set VARIABLE

export VARIABLE

declare VARIABLE


unset VARIABLE

Curso Linux Intermedio UTFSM 2006


Algunas variables útiles (1/2)

$HOME
– /home/mave

$PWD
– /opt/mp3

$OLDPWD
– /var/log

$PATH
– /bin:/usr/bin:/usr/local/bin

$LANG
– en_US.UTF­8

Curso Linux Intermedio UTFSM 2006


Algunas variables útiles (2/2)

$USER
– mave

$VISUAL
– emacs

$EDITOR
– vim

$HOSTNAME
– kayupi

$RANDOM
– [0 ­ 32767]

Curso Linux Intermedio UTFSM 2006


Significado de comillas

Comillas dobles “ “
– BASH lo interpreta antes de ejecutar cualquier cosa


Comillas simples ' '
– No se interpreta nada, el contenido se asume tal
cual.


Cremillas simples ` `
– Mismo significado que $( )

Curso Linux Intermedio UTFSM 2006


Programando...

man 1 bash
– Sección “ Compound commands”


help comando
– if
– case
– for
– while/until
– select
– function

Curso Linux Intermedio UTFSM 2006


Programando – IF
if condicion1;
then
lista_comandos1;
elif
condicion2
then
lista_comandos2;
else
lista_comandos3;
fi

Curso Linux Intermedio UTFSM 2006


Programando – CASE
case expresion in
patron1)
lista_comandos1;;
patron2)
lista_comandos2;;
.
.
*)
lista_comandosXXX;;
esac

Curso Linux Intermedio UTFSM 2006


Programando – WHILE / UNTIL
while condicion;
do
lista_comandos;
done

until condicion;
do
lista_comandos;
done

Curso Linux Intermedio UTFSM 2006


Programando – FOR
for variable in elem1 elem2 ... elemN;
do lista_comandos;
done

for variable in $(lista_generadora_elementos);


do lista_comandos;
done

for ((var=MIN; var<=MAX; var++))


do lista_comandos;
done

Curso Linux Intermedio UTFSM 2006


Programando – FUNCTION
function Nombre_Funcion() {
lista_comandos ;
}

Argumentos de function:
$1, $2, $3
$*

return 0 → TRUE
return 1 → FALSE

Curso Linux Intermedio UTFSM 2006


Scripts – Hola mundo!
#!/bin/bash
#Evitando la maldición...

TEXTO=” Hola mundo”

function escribe(){
echo $*;
return 0;
}
escribe $TEXTO

Curso Linux Intermedio UTFSM 2006


Scripts – Haciendo Thumbnails
#!/bin/bash
# Crea imágenes jpg, de tamaños 150x150 en
# directorio “ img”

for foto in $(find . -iname '*.jpg' -maxdepth 1) ;


do
convert $foto -geometry150x150 img/$foto;
done

Curso Linux Intermedio UTFSM 2006


Automatizando scripts - at
at(1)
at
atq
atrm

at now + 2 minutes
echo "hola" > /dev/tty10
C-d

Curso Linux Intermedio UTFSM 2006


Automatizando scripts – cron (1/2)

crontab(5)
– crontab -e
– /etc/cron.{daily,hourly,monthly,weekly}


min hor dia mes dia_sem /mi/lindo/cron
* 3 * * * /opt/updates

Curso Linux Intermedio UTFSM 2006


Automatizando scripts – cron (2/2)
*4*** echo "Todos los días a las 4 AM"

5 4 * * sun echo "corre 5 min despues de


las 4 todos los dom"

23 0-23/2 * * * echo "corre 23 mins dps de


medianoche, 2am, 4am...
todos los dias"

Curso Linux Intermedio UTFSM 2006

S-ar putea să vă placă și