• Like
Introducción a la programación en Bash
Upcoming SlideShare
Loading in...5
×

Introducción a la programación en Bash

  • 1,499 views
Uploaded on

En esta presentación es un curso básico de programación de bash. Bash es el Bourne Shell de Linux y cygwin.

En esta presentación es un curso básico de programación de bash. Bash es el Bourne Shell de Linux y cygwin.

More in: Technology
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Be the first to comment
No Downloads

Views

Total Views
1,499
On Slideshare
0
From Embeds
0
Number of Embeds
2

Actions

Shares
Downloads
76
Comments
0
Likes
2

Embeds 0

No embeds

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
    No notes for slide

Transcript

  • 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