1. Shell: aquel desconocido
API de shell
Manos a la obra!
Introducci´n a la programaci´n en Bash
o o
Mauro Parra Miranda
mauropm@gmail.com
November 19, 2005
Mauro Parra Miranda mauropm@gmail.com Introducci´n a la programaci´n en Bash
o o
2. Shell: aquel desconocido
API de shell
Manos a la obra!
Qu´ es un shell
e
El shell es un interprete de comandos
Mauro Parra Miranda mauropm@gmail.com Introducci´n a la programaci´n en Bash
o o
3. Shell: aquel desconocido
API de shell
Manos a la obra!
Qu´ es un shell
e
El shell es un interprete de comandos
Pero tambien es un lenguaje
Mauro Parra Miranda mauropm@gmail.com Introducci´n a la programaci´n en Bash
o o
4. Shell: aquel desconocido
API de shell
Manos a la obra!
Qu´ es un shell
e
El shell es un interprete de comandos
Pero tambien es un lenguaje
El conjunto de comandos es un script
Mauro Parra Miranda mauropm@gmail.com Introducci´n a la programaci´n en Bash
o o
5. Shell: aquel desconocido
API de shell
Manos a la obra!
Qu´ es un shell
e
El shell es un interprete de comandos
Pero tambien es un lenguaje
El conjunto de comandos es un script
Un script sirve como ’pegamento’ de diversos comandos
sencillos, que en conjunto son considerablemente poderosos.
Mauro Parra Miranda mauropm@gmail.com Introducci´n a la programaci´n en Bash
o o
6. Shell: aquel desconocido
API de shell
Manos a la obra!
Por qu´ aprender a programarlo?
e
Te evita hacer tareas repetitivas
Mauro Parra Miranda mauropm@gmail.com Introducci´n a la programaci´n en Bash
o o
7. Shell: aquel desconocido
API de shell
Manos a la obra!
Por qu´ aprender a programarlo?
e
Te evita hacer tareas repetitivas
Es bueno conocerlos, alg´n dia resolver´ algun problema como
u a
con los scripts en /etc/rc.d
Mauro Parra Miranda mauropm@gmail.com Introducci´n a la programaci´n en Bash
o o
8. Shell: aquel desconocido
API de shell
Manos a la obra!
Por qu´ aprender a programarlo?
e
Te evita hacer tareas repetitivas
Es bueno conocerlos, alg´n dia resolver´ algun problema como
u a
con los scripts en /etc/rc.d
Es facil de aprender: piensa que quieres hacer - escribelo -
revisalo (ahora ponlo todo en un archivo o script)
Mauro Parra Miranda mauropm@gmail.com Introducci´n a la programaci´n en Bash
o o
9. Shell: aquel desconocido
API de shell
Manos a la obra!
Por qu´ aprender a programarlo?
e
Te evita hacer tareas repetitivas
Es bueno conocerlos, alg´n dia resolver´ algun problema como
u a
con los scripts en /etc/rc.d
Es facil de aprender: piensa que quieres hacer - escribelo -
revisalo (ahora ponlo todo en un archivo o script)
Usualmente no tienes que debugear mucho, es como si
vaciaras lo que harias en el prompt de comandos, pero escrito
en un archivo.
Mauro Parra Miranda mauropm@gmail.com Introducci´n a la programaci´n en Bash
o o
10. Shell: aquel desconocido
API de shell
Manos a la obra!
Por qu´ aprender a programarlo?
e
Te evita hacer tareas repetitivas
Es bueno conocerlos, alg´n dia resolver´ algun problema como
u a
con los scripts en /etc/rc.d
Es facil de aprender: piensa que quieres hacer - escribelo -
revisalo (ahora ponlo todo en un archivo o script)
Usualmente no tienes que debugear mucho, es como si
vaciaras lo que harias en el prompt de comandos, pero escrito
en un archivo.
Es ideal para hacer algunos prototipos
Mauro Parra Miranda mauropm@gmail.com Introducci´n a la programaci´n en Bash
o o
11. Shell: aquel desconocido
API de shell
Manos a la obra!
Por qu´ aprender a programarlo?
e
Te evita hacer tareas repetitivas
Es bueno conocerlos, alg´n dia resolver´ algun problema como
u a
con los scripts en /etc/rc.d
Es facil de aprender: piensa que quieres hacer - escribelo -
revisalo (ahora ponlo todo en un archivo o script)
Usualmente no tienes que debugear mucho, es como si
vaciaras lo que harias en el prompt de comandos, pero escrito
en un archivo.
Es ideal para hacer algunos prototipos
Es muy *nix: Keep It Simple Stupid! (divide y venceras)
Mauro Parra Miranda mauropm@gmail.com Introducci´n a la programaci´n en Bash
o o
12. Shell: aquel desconocido
API de shell
Manos a la obra!
No se use en caso de...
Hacer matem´ticas intensas - Use Fortran (si aun existe)
a
Mauro Parra Miranda mauropm@gmail.com Introducci´n a la programaci´n en Bash
o o
13. Shell: aquel desconocido
API de shell
Manos a la obra!
No se use en caso de...
Hacer matem´ticas intensas - Use Fortran (si aun existe)
a
Requerir super portabilidad - Use Java, .NET o ’C’
Mauro Parra Miranda mauropm@gmail.com Introducci´n a la programaci´n en Bash
o o
14. Shell: aquel desconocido
API de shell
Manos a la obra!
No se use en caso de...
Hacer matem´ticas intensas - Use Fortran (si aun existe)
a
Requerir super portabilidad - Use Java, .NET o ’C’
Aplicaciones complejas - Por ejemplo, que requieran
estructuras mas elaboradas
Mauro Parra Miranda mauropm@gmail.com Introducci´n a la programaci´n en Bash
o o
15. Shell: aquel desconocido
API de shell
Manos a la obra!
No se use en caso de...
Hacer matem´ticas intensas - Use Fortran (si aun existe)
a
Requerir super portabilidad - Use Java, .NET o ’C’
Aplicaciones complejas - Por ejemplo, que requieran
estructuras mas elaboradas
Aplicaciones de misi´n critica
o
Mauro Parra Miranda mauropm@gmail.com Introducci´n a la programaci´n en Bash
o o
16. Shell: aquel desconocido
API de shell
Manos a la obra!
No se use en caso de...
Hacer matem´ticas intensas - Use Fortran (si aun existe)
a
Requerir super portabilidad - Use Java, .NET o ’C’
Aplicaciones complejas - Por ejemplo, que requieran
estructuras mas elaboradas
Aplicaciones de misi´n critica
o
Requerir estructuras de datos ’elegantes’ - Listas ligadas,
arboles
Mauro Parra Miranda mauropm@gmail.com Introducci´n a la programaci´n en Bash
o o
17. Shell: aquel desconocido
API de shell
Manos a la obra!
No se use en caso de...
Hacer matem´ticas intensas - Use Fortran (si aun existe)
a
Requerir super portabilidad - Use Java, .NET o ’C’
Aplicaciones complejas - Por ejemplo, que requieran
estructuras mas elaboradas
Aplicaciones de misi´n critica
o
Requerir estructuras de datos ’elegantes’ - Listas ligadas,
arboles
Crear Aplicaciones propietarias - Es dificil de ofuscar :)
Mauro Parra Miranda mauropm@gmail.com Introducci´n a la programaci´n en Bash
o o
18. Shell: aquel desconocido
API de shell
Manos a la obra!
API del shell
Todo comando de *nix puede ser invocado
Mauro Parra Miranda mauropm@gmail.com Introducci´n a la programaci´n en Bash
o o
19. Shell: aquel desconocido
API de shell
Manos a la obra!
API del shell
Todo comando de *nix puede ser invocado
Comandos de testing
Mauro Parra Miranda mauropm@gmail.com Introducci´n a la programaci´n en Bash
o o
20. Shell: aquel desconocido
API de shell
Manos a la obra!
API del shell
Todo comando de *nix puede ser invocado
Comandos de testing
loops - ciclos
Mauro Parra Miranda mauropm@gmail.com Introducci´n a la programaci´n en Bash
o o
21. Shell: aquel desconocido
API de shell
Manos a la obra!
API del shell
Todo comando de *nix puede ser invocado
Comandos de testing
loops - ciclos
Tus propios programas o scripts son parte del API!
Mauro Parra Miranda mauropm@gmail.com Introducci´n a la programaci´n en Bash
o o
22. Shell: aquel desconocido
API de shell
Manos a la obra!
C´mo creo un script?
o
Crea un archivo miscript.sh con tu editor de textos favorito
Mauro Parra Miranda mauropm@gmail.com Introducci´n a la programaci´n en Bash
o o
23. Shell: aquel desconocido
API de shell
Manos a la obra!
C´mo creo un script?
o
Crea un archivo miscript.sh con tu editor de textos favorito
Dale permisos de ejecuci´n: chmod +x miscript.sh
o
Mauro Parra Miranda mauropm@gmail.com Introducci´n a la programaci´n en Bash
o o
24. Shell: aquel desconocido
API de shell
Manos a la obra!
C´mo creo un script?
o
Crea un archivo miscript.sh con tu editor de textos favorito
Dale permisos de ejecuci´n: chmod +x miscript.sh
o
Ejecutalo: ./miscript.sh
Mauro Parra Miranda mauropm@gmail.com Introducci´n a la programaci´n en Bash
o o
25. Shell: aquel desconocido
API de shell
Manos a la obra!
C´mo creo un script?
o
Crea un archivo miscript.sh con tu editor de textos favorito
Dale permisos de ejecuci´n: chmod +x miscript.sh
o
Ejecutalo: ./miscript.sh
Listo!
Mauro Parra Miranda mauropm@gmail.com Introducci´n a la programaci´n en Bash
o o
26. Shell: aquel desconocido
API de shell
Manos a la obra!
C´mo creo un script?
o
Crea un archivo miscript.sh con tu editor de textos favorito
Dale permisos de ejecuci´n: chmod +x miscript.sh
o
Ejecutalo: ./miscript.sh
Listo!
En serio, eso es todo. :)
Mauro Parra Miranda mauropm@gmail.com Introducci´n a la programaci´n en Bash
o o
27. Shell: aquel desconocido
API de shell
Manos a la obra!
Hola mundo!
#!/bin/bash
echo ’Hello world’
Mauro Parra Miranda mauropm@gmail.com Introducci´n a la programaci´n en Bash
o o
28. Shell: aquel desconocido
API de shell
Manos a la obra!
Corriendo el script
Guardarlo en el archivo script.sh
Mauro Parra Miranda mauropm@gmail.com Introducci´n a la programaci´n en Bash
o o
29. Shell: aquel desconocido
API de shell
Manos a la obra!
Corriendo el script
Guardarlo en el archivo script.sh
chmod +x script.sh
Mauro Parra Miranda mauropm@gmail.com Introducci´n a la programaci´n en Bash
o o
30. Shell: aquel desconocido
API de shell
Manos a la obra!
Corriendo el script
Guardarlo en el archivo script.sh
chmod +x script.sh
./script.sh
Mauro Parra Miranda mauropm@gmail.com Introducci´n a la programaci´n en Bash
o o
31. Shell: aquel desconocido
API de shell
Manos a la obra!
Respaldo
#!/bin/bashLimpieza
DATE=‘date +%d-%m-%y‘
USER=foobar
echo ’Comenzando el backup’
tar cjvf /tmp/$USER-$DATE.tbz /home/foobar
echo ’Backup terminado’
Mauro Parra Miranda mauropm@gmail.com Introducci´n a la programaci´n en Bash
o o
32. Shell: aquel desconocido
API de shell
Manos a la obra!
Redireccionando
Redireccionar stdout a un archivo
Mauro Parra Miranda mauropm@gmail.com Introducci´n a la programaci´n en Bash
o o
33. Shell: aquel desconocido
API de shell
Manos a la obra!
Redireccionando
Redireccionar stdout a un archivo
Redireccionar stderr a un archivo
Mauro Parra Miranda mauropm@gmail.com Introducci´n a la programaci´n en Bash
o o
34. Shell: aquel desconocido
API de shell
Manos a la obra!
Redireccionando
Redireccionar stdout a un archivo
Redireccionar stderr a un archivo
Redireccionar stdout a stderr
Mauro Parra Miranda mauropm@gmail.com Introducci´n a la programaci´n en Bash
o o
35. Shell: aquel desconocido
API de shell
Manos a la obra!
Redireccionando
Redireccionar stdout a un archivo
Redireccionar stderr a un archivo
Redireccionar stdout a stderr
Redireccionar stderr a stdout
Mauro Parra Miranda mauropm@gmail.com Introducci´n a la programaci´n en Bash
o o
36. Shell: aquel desconocido
API de shell
Manos a la obra!
Redireccionando
Redireccionar stdout a un archivo
Redireccionar stderr a un archivo
Redireccionar stdout a stderr
Redireccionar stderr a stdout
Redireccionar stdout y stderr a un archivo
Mauro Parra Miranda mauropm@gmail.com Introducci´n a la programaci´n en Bash
o o
37. Shell: aquel desconocido
API de shell
Manos a la obra!
Ejemplo de redireccionamiento
ls -l >ls-l.txt
Mauro Parra Miranda mauropm@gmail.com Introducci´n a la programaci´n en Bash
o o
38. Shell: aquel desconocido
API de shell
Manos a la obra!
Ejemplo de redireccionamiento
grep da * 2> grep-errors.txt
Mauro Parra Miranda mauropm@gmail.com Introducci´n a la programaci´n en Bash
o o
39. Shell: aquel desconocido
API de shell
Manos a la obra!
Ejemplo de redireccionamiento
grep da * 1>&2 grep-errors.txt
Mauro Parra Miranda mauropm@gmail.com Introducci´n a la programaci´n en Bash
o o
40. Shell: aquel desconocido
API de shell
Manos a la obra!
Ejemplo de redireccionamiento
grep * 2>&1
Mauro Parra Miranda mauropm@gmail.com Introducci´n a la programaci´n en Bash
o o
41. Shell: aquel desconocido
API de shell
Manos a la obra!
Ejemplo de redireccionamiento
rm -f $(find / -name core) &> /dev/null
Mauro Parra Miranda mauropm@gmail.com Introducci´n a la programaci´n en Bash
o o
42. Shell: aquel desconocido
API de shell
Manos a la obra!
Tuberias o Pipes
Una tuberia sirve para redireccionar la salida de un comando a
la entrada de otro
Mauro Parra Miranda mauropm@gmail.com Introducci´n a la programaci´n en Bash
o o
43. Shell: aquel desconocido
API de shell
Manos a la obra!
Tuberias o Pipes
Una tuberia sirve para redireccionar la salida de un comando a
la entrada de otro
Por omision, la salida estandar sera redireccionada a la
entrada estandar del otro programa
Mauro Parra Miranda mauropm@gmail.com Introducci´n a la programaci´n en Bash
o o
44. Shell: aquel desconocido
API de shell
Manos a la obra!
Ejemplo de tuberia
ls -l | grep ‘‘.txt$’’
Mauro Parra Miranda mauropm@gmail.com Introducci´n a la programaci´n en Bash
o o
45. Shell: aquel desconocido
API de shell
Manos a la obra!
Variables
Las variables no necesitan ser declaradas
Mauro Parra Miranda mauropm@gmail.com Introducci´n a la programaci´n en Bash
o o
46. Shell: aquel desconocido
API de shell
Manos a la obra!
Variables
Las variables no necesitan ser declaradas
Son dinamicas ademas (no tienes que ’alojar’ memoria)
Mauro Parra Miranda mauropm@gmail.com Introducci´n a la programaci´n en Bash
o o
47. Shell: aquel desconocido
API de shell
Manos a la obra!
Hola mundo! meet variables
#!/bin/bash
STR=’’Hello world!’’
echo $STR
Mauro Parra Miranda mauropm@gmail.com Introducci´n a la programaci´n en Bash
o o
48. Shell: aquel desconocido
API de shell
Manos a la obra!
Respaldo
#!/bin/bash
OF=/var/my-backup-$(date +%Y%m%d).tgz
tar -cZf $OF /home/me/#!/bin/bash
Mauro Parra Miranda mauropm@gmail.com Introducci´n a la programaci´n en Bash
o o
49. Shell: aquel desconocido
API de shell
Manos a la obra!
Hola mundo!
#!/bin/bash
HELLO=Hello
function hello {
local HELLO=World
echo $HELLO
}
echo $HELLO
hello
echo $HELLO
Mauro Parra Miranda mauropm@gmail.com Introducci´n a la programaci´n en Bash
o o
50. Shell: aquel desconocido
API de shell
Manos a la obra!
Condicionales
Tenemos if’s en bash! Con diferentes sabores
Mauro Parra Miranda mauropm@gmail.com Introducci´n a la programaci´n en Bash
o o
51. Shell: aquel desconocido
API de shell
Manos a la obra!
Condicionales
Tenemos if’s en bash! Con diferentes sabores
if expression then statement
Mauro Parra Miranda mauropm@gmail.com Introducci´n a la programaci´n en Bash
o o
52. Shell: aquel desconocido
API de shell
Manos a la obra!
Condicionales
Tenemos if’s en bash! Con diferentes sabores
if expression then statement
if expression then statement1 else statement2
Mauro Parra Miranda mauropm@gmail.com Introducci´n a la programaci´n en Bash
o o
53. Shell: aquel desconocido
API de shell
Manos a la obra!
Condicionales
Tenemos if’s en bash! Con diferentes sabores
if expression then statement
if expression then statement1 else statement2
if expression1 then statement1 else if expression2 then
statement2 else statement3
Mauro Parra Miranda mauropm@gmail.com Introducci´n a la programaci´n en Bash
o o
54. Shell: aquel desconocido
API de shell
Manos a la obra!
Ejemplo de if-then
#!/bin/bash
if [ ‘‘foo’’ = ‘‘foo’’ ]; then
echo ‘‘Cierto, foo == foo’’
fi
Mauro Parra Miranda mauropm@gmail.com Introducci´n a la programaci´n en Bash
o o
55. Shell: aquel desconocido
API de shell
Manos a la obra!
Ejemplo de if-then-else
#!/bin/bash
if [ ‘‘foo’’ = ‘‘foo’’ ]; then
echo ‘‘Cierto, foo == foo’’
else
echo ‘‘Era falsa’’
fi
Mauro Parra Miranda mauropm@gmail.com Introducci´n a la programaci´n en Bash
o o
56. Shell: aquel desconocido
API de shell
Manos a la obra!
Cuando las variables y condicionales se encuentran
#!/bin/bash
T1=’’foo’’
T2=’’bar’’
if [ $T1 = $T2 ]; then
echo ‘‘Cierto, ‘‘$T1’’== ‘‘$T2
else
echo ‘‘No es cierto’’
fi
Mauro Parra Miranda mauropm@gmail.com Introducci´n a la programaci´n en Bash
o o
57. Shell: aquel desconocido
API de shell
Manos a la obra!
–Fruit– Loops err... ciclos
for - es un poco diferente, puedes iterar sobre cadenas o
palabras en las cadenas
Mauro Parra Miranda mauropm@gmail.com Introducci´n a la programaci´n en Bash
o o
58. Shell: aquel desconocido
API de shell
Manos a la obra!
–Fruit– Loops err... ciclos
for - es un poco diferente, puedes iterar sobre cadenas o
palabras en las cadenas
while - ejecuta un pedazo de codigo si una condicion se
cumple, y para cuando es falsa
Mauro Parra Miranda mauropm@gmail.com Introducci´n a la programaci´n en Bash
o o
59. Shell: aquel desconocido
API de shell
Manos a la obra!
–Fruit– Loops err... ciclos
for - es un poco diferente, puedes iterar sobre cadenas o
palabras en las cadenas
while - ejecuta un pedazo de codigo si una condicion se
cumple, y para cuando es falsa
until - ejecuta un pedazo de codigo, hasta que una expresion
sea falsa
Mauro Parra Miranda mauropm@gmail.com Introducci´n a la programaci´n en Bash
o o
60. Shell: aquel desconocido
API de shell
Manos a la obra!
–Fruit– Loops err... ciclos
for - es un poco diferente, puedes iterar sobre cadenas o
palabras en las cadenas
while - ejecuta un pedazo de codigo si una condicion se
cumple, y para cuando es falsa
until - ejecuta un pedazo de codigo, hasta que una expresion
sea falsa
Cuide sus expresiones, no vaya a caer en un ciclo infinito
Mauro Parra Miranda mauropm@gmail.com Introducci´n a la programaci´n en Bash
o o
61. Shell: aquel desconocido
API de shell
Manos a la obra!
Mi primer for
#!/bin/bash
for i in $( ls ); do
echo item: $i
done
Mauro Parra Miranda mauropm@gmail.com Introducci´n a la programaci´n en Bash
o o
62. Shell: aquel desconocido
API de shell
Manos a la obra!
Mira mam´, como en C
a
#!/bin/bash
for i in ‘seq 1 10‘;
do
echo $i
done
Mauro Parra Miranda mauropm@gmail.com Introducci´n a la programaci´n en Bash
o o
63. Shell: aquel desconocido
API de shell
Manos a la obra!
El while
#!/bin/bash
COUNTER=0
while [ $COUNTER -lt 10 ]; do
echo The counter is $COUNTER
let COUNTER=COUNTER+1
done
Mauro Parra Miranda mauropm@gmail.com Introducci´n a la programaci´n en Bash
o o
64. Shell: aquel desconocido
API de shell
Manos a la obra!
hey! que era eso de let?
Note el uso de let, let lo que hace es evaluar arithmeticamente
la expresion que sigue
Mauro Parra Miranda mauropm@gmail.com Introducci´n a la programaci´n en Bash
o o
65. Shell: aquel desconocido
API de shell
Manos a la obra!
hey! que era eso de let?
Note el uso de let, let lo que hace es evaluar arithmeticamente
la expresion que sigue
Para mas en expresiones aritmeticas, da: ’man bash’ y busca
ARITHMETIC EVALUATION
Mauro Parra Miranda mauropm@gmail.com Introducci´n a la programaci´n en Bash
o o
66. Shell: aquel desconocido
API de shell
Manos a la obra!
El until
#!/bin/bash
COUNTER=20
until [ $COUNTER -lt 10 ];
do
echo COUNTER $COUNTER
let COUNTER-=1
done
Mauro Parra Miranda mauropm@gmail.com Introducci´n a la programaci´n en Bash
o o
67. Shell: aquel desconocido
API de shell
Manos a la obra!
Funciones
Para hacer los programas ordenados
Mauro Parra Miranda mauropm@gmail.com Introducci´n a la programaci´n en Bash
o o
68. Shell: aquel desconocido
API de shell
Manos a la obra!
Funciones
Para hacer los programas ordenados
Para reusar codigo
Mauro Parra Miranda mauropm@gmail.com Introducci´n a la programaci´n en Bash
o o
69. Shell: aquel desconocido
API de shell
Manos a la obra!
Funciones
Para hacer los programas ordenados
Para reusar codigo
Para ser recursivo
Mauro Parra Miranda mauropm@gmail.com Introducci´n a la programaci´n en Bash
o o
70. Shell: aquel desconocido
API de shell
Manos a la obra!
Ejemplo de funcion
#!/bin/bash
function quit {
exit
}
function hello {
echo Hello!
}
hello
quit
echo foo
Mauro Parra Miranda mauropm@gmail.com Introducci´n a la programaci´n en Bash
o o
71. Shell: aquel desconocido
API de shell
Manos a la obra!
Ejemplo de funciones con argumentos
#!/bin/bash
function quit {
exit
}
function e {
echo $1
}
e Hello
e World
quit
echo foo
Mauro Parra Miranda mauropm@gmail.com Introducci´n a la programaci´n en Bash
o o
72. Shell: aquel desconocido
API de shell
Manos a la obra!
Haciendo un men´
u
Podemos hacer un menu en shell!
Mauro Parra Miranda mauropm@gmail.com Introducci´n a la programaci´n en Bash
o o
73. Shell: aquel desconocido
API de shell
Manos a la obra!
Menu simple
#!/bin/bash
OPTIONS=’’Hello Quit’’
select opt in $OPTIONS; do
if [ ‘‘$opt’’ = ‘‘Quit’’ ]; then
echo done
exit
elif [ ‘‘$opt’’ = ‘‘Hello’’ ]; then
echo Hello World
else
clear
echo bad option
fi
done
Mauro Parra Miranda mauropm@gmail.com Introducci´n a la programaci´n en Bash
o o
74. Shell: aquel desconocido
API de shell
Manos a la obra!
Revisando argumentos
Para completar el menu, tenemos forma de revisar los
argumentos!
Mauro Parra Miranda mauropm@gmail.com Introducci´n a la programaci´n en Bash
o o
75. Shell: aquel desconocido
API de shell
Manos a la obra!
Mira mam´, con argumentos!
a
#!/bin/bash
if [ -z ‘‘$1’’ ]; then
echo usage: $0 directory
exit
fi
SRCD=$1
TGTD=’’/var/backups/’’
OF=home-$(date +%Y%m%d).tgz
tar -cZf $TGTD$OF $SRCD
done
Mauro Parra Miranda mauropm@gmail.com Introducci´n a la programaci´n en Bash
o o
76. Shell: aquel desconocido
API de shell
Manos a la obra!
Leyendo entradas de los usuarios
Podemos leer entradas ’interactivas’ del usuario
Mauro Parra Miranda mauropm@gmail.com Introducci´n a la programaci´n en Bash
o o
77. Shell: aquel desconocido
API de shell
Manos a la obra!
Leyendo entradas de los usuarios
Podemos leer entradas ’interactivas’ del usuario
Notan que podemos hacer un facil juego en BASH?
Mauro Parra Miranda mauropm@gmail.com Introducci´n a la programaci´n en Bash
o o
78. Shell: aquel desconocido
API de shell
Manos a la obra!
Leyendo entradas de los usuarios
Podemos leer entradas ’interactivas’ del usuario
Notan que podemos hacer un facil juego en BASH?
Si, un juego en texto :)
Mauro Parra Miranda mauropm@gmail.com Introducci´n a la programaci´n en Bash
o o
79. Shell: aquel desconocido
API de shell
Manos a la obra!
read
#!/bin/bash
echo Por favor, meta su nombre
read NAME
echo ‘‘Hi $NAME!’’
Mauro Parra Miranda mauropm@gmail.com Introducci´n a la programaci´n en Bash
o o
80. Shell: aquel desconocido
API de shell
Manos a la obra!
+ reads
#!/bin/bash
echo Por favor, meta su nombre y apellido
read FN LN
echo ‘‘Hi! $LN, $FN !’’
Mauro Parra Miranda mauropm@gmail.com Introducci´n a la programaci´n en Bash
o o
81. Shell: aquel desconocido
API de shell
Manos a la obra!
Usando bash como calculadora
Uno puede hacer uso del sistema de expresiones aritmeticas de
bash
Mauro Parra Miranda mauropm@gmail.com Introducci´n a la programaci´n en Bash
o o
82. Shell: aquel desconocido
API de shell
Manos a la obra!
Usando bash como calculadora
Uno puede hacer uso del sistema de expresiones aritmeticas de
bash
Si hacen algo como: echo 1+1 - no obtendran los resultados
adecuados (bash interpretara 1+1 como cadena, y como tal,
la imprimira)
Mauro Parra Miranda mauropm@gmail.com Introducci´n a la programaci´n en Bash
o o
83. Shell: aquel desconocido
API de shell
Manos a la obra!
Usando bash como calculadora
Uno puede hacer uso del sistema de expresiones aritmeticas de
bash
Si hacen algo como: echo 1+1 - no obtendran los resultados
adecuados (bash interpretara 1+1 como cadena, y como tal,
la imprimira)
Se puede hacer: echo $((1+1))
Mauro Parra Miranda mauropm@gmail.com Introducci´n a la programaci´n en Bash
o o
84. Shell: aquel desconocido
API de shell
Manos a la obra!
Usando bash como calculadora
Uno puede hacer uso del sistema de expresiones aritmeticas de
bash
Si hacen algo como: echo 1+1 - no obtendran los resultados
adecuados (bash interpretara 1+1 como cadena, y como tal,
la imprimira)
Se puede hacer: echo $((1+1))
Se puede hacer: echo $[1+1]
Mauro Parra Miranda mauropm@gmail.com Introducci´n a la programaci´n en Bash
o o
85. Shell: aquel desconocido
API de shell
Manos a la obra!
Usando bash como calculadora
Uno puede hacer uso del sistema de expresiones aritmeticas de
bash
Si hacen algo como: echo 1+1 - no obtendran los resultados
adecuados (bash interpretara 1+1 como cadena, y como tal,
la imprimira)
Se puede hacer: echo $((1+1))
Se puede hacer: echo $[1+1]
Solo funciona con enteros. Si necesita algo mas alla de ello,
use bc
Mauro Parra Miranda mauropm@gmail.com Introducci´n a la programaci´n en Bash
o o
86. Shell: aquel desconocido
API de shell
Manos a la obra!
Si necesita uno debugear
Use #!/bin/bash -x
Mauro Parra Miranda mauropm@gmail.com Introducci´n a la programaci´n en Bash
o o
87. Shell: aquel desconocido
API de shell
Manos a la obra!
Mas recursos
BASH Prog howto - http://www.tldp.org/HOWTO/Bash-
Prog-Intro-HOWTO.html
Mauro Parra Miranda mauropm@gmail.com Introducci´n a la programaci´n en Bash
o o
88. Shell: aquel desconocido
API de shell
Manos a la obra!
Mas recursos
BASH Prog howto - http://www.tldp.org/HOWTO/Bash-
Prog-Intro-HOWTO.html
man bash
Mauro Parra Miranda mauropm@gmail.com Introducci´n a la programaci´n en Bash
o o
89. Shell: aquel desconocido
API de shell
Manos a la obra!
Mas recursos
BASH Prog howto - http://www.tldp.org/HOWTO/Bash-
Prog-Intro-HOWTO.html
man bash
Advanced Programming -
http://www.tldp.org/LDP/abs/html/
Mauro Parra Miranda mauropm@gmail.com Introducci´n a la programaci´n en Bash
o o
90. Shell: aquel desconocido
API de shell
Manos a la obra!
Mas recursos
BASH Prog howto - http://www.tldp.org/HOWTO/Bash-
Prog-Intro-HOWTO.html
man bash
Advanced Programming -
http://www.tldp.org/LDP/abs/html/
shc - http://www.datsi.fi.upm.es/ frosal/
Mauro Parra Miranda mauropm@gmail.com Introducci´n a la programaci´n en Bash
o o
91. Shell: aquel desconocido
API de shell
Manos a la obra!
Mas recursos
BASH Prog howto - http://www.tldp.org/HOWTO/Bash-
Prog-Intro-HOWTO.html
man bash
Advanced Programming -
http://www.tldp.org/LDP/abs/html/
shc - http://www.datsi.fi.upm.es/ frosal/
http://www.mechulk.com/docs/bash.pdf
Mauro Parra Miranda mauropm@gmail.com Introducci´n a la programaci´n en Bash
o o
92. Shell: aquel desconocido
API de shell
Manos a la obra!
Mas recursos
BASH Prog howto - http://www.tldp.org/HOWTO/Bash-
Prog-Intro-HOWTO.html
man bash
Advanced Programming -
http://www.tldp.org/LDP/abs/html/
shc - http://www.datsi.fi.upm.es/ frosal/
http://www.mechulk.com/docs/bash.pdf
irc.freenode.org #lidsol
Mauro Parra Miranda mauropm@gmail.com Introducci´n a la programaci´n en Bash
o o
93. Shell: aquel desconocido
API de shell
Manos a la obra!
Mas recursos
BASH Prog howto - http://www.tldp.org/HOWTO/Bash-
Prog-Intro-HOWTO.html
man bash
Advanced Programming -
http://www.tldp.org/LDP/abs/html/
shc - http://www.datsi.fi.upm.es/ frosal/
http://www.mechulk.com/docs/bash.pdf
irc.freenode.org #lidsol
mauropm@gmail.com
Mauro Parra Miranda mauropm@gmail.com Introducci´n a la programaci´n en Bash
o o
94. Shell: aquel desconocido
API de shell
Manos a la obra!
Gracias por resistir hasta aqui!
Tienen mas preguntas?
Mauro Parra Miranda mauropm@gmail.com Introducci´n a la programaci´n en Bash
o o
95. Shell: aquel desconocido
API de shell
Manos a la obra!
Gracias por resistir hasta aqui!
Tienen mas preguntas?
man bash
Mauro Parra Miranda mauropm@gmail.com Introducci´n a la programaci´n en Bash
o o
96. Shell: aquel desconocido
API de shell
Manos a la obra!
Gracias por resistir hasta aqui!
Tienen mas preguntas?
man bash
http://www.mechulk.com/docs/bash.pdf
Mauro Parra Miranda mauropm@gmail.com Introducci´n a la programaci´n en Bash
o o