Programación en Bash

3,765 views

Published on

Introducción a la Programación en bash

Published in: Technology
  • Be the first to comment

Programación en Bash

  1. 1. #!/bin/bashRafael Bucio Universidad Politecnica de Chiapas
  2. 2. Que es Bash ??Bourne-Again SHell (otro shell bourne)Haciendo un juego de palabras (born-again significa renacimiento)Sobre el Bourne shell (sh) → que fue uno de los primeros intérpretes importantes de Unix.Hacia 1978 el shell Bourne era el shell distribuido con el Unix Version 7.Es un Interprete de comandos. no necesita compilar :D
  3. 3. Como encontrarlo ??Aplicaciones → accesorios → TerminalTecleamos: locate bashPara ser mas exactos: which bash
  4. 4. ¿Qué necesito?: ● Editor de texto, gedit, vim etc.. ● Comandos Basicos Unix. ● Un poco de XML
  5. 5. Comandos Basicos $ cd → Cambiar el directorio de trabajo (change directory) $ ls → Listar el contenido de directorios (list) $ mkdir → Crear un directorio (make directory) $ rmdir → Borrar un directorio (remove directory) $ cp → Copiar un archivo o directorio en el directorio especificado (copy) $ mv → Mover un archivo o directorio a un archivo o directorio. Se utiliza también para renombrar; el origen y destino es un archivo (move) $ rm → Borrar archivos o directorios (remove): $ cat → Mostrar por pantalla el contenido de los archivos por la salida estándar. $ find → Buscar archivos recorriendo árboles de directorios especificados por las rutas. $ pwd → Mostrar el nombre del directorio en el que uno se encuentra situado $chmod → Cambiar los permisos de el archivo. $echo → Sacar por la salida standard (la pantalla) lo que se le pasa por parámetro, puede ser texto o una variable
  6. 6. Estructura.#!/bin/bash #! Se conoce con el nombre de Sha Bang.# /bin/bash Lo que vamos a usar ya sea bash o perl (/usr/bin/perl)# Esto es un comentario#comandocomandocomando.....
  7. 7. HOLA MUNDOOO#!/bin/bashecho ”Hola Mundo, cruel :(”
  8. 8. Cómo ejecutar.Primero damos permisos de ejecución chmod +x script.sh Ejecutamos ./script.sh
  9. 9. REDIRRECIONES ls -l > ejemplols-l.txtEsto hará que la salida de un programa se escriba en un fichero. stdout a un fichero
  10. 10. TUBERÍASLas tuberías le permiten utilizar la salida de un programa como la entrada de otro.
  11. 11. TUBERÍAS ls -l | sed -e "s/[aeio]/u/g"enlista | entuba en sed e imprime en pantalla, todo con solo U =)
  12. 12. SCRIPTS
  13. 13. VARIABLES#!/bin/bashnombrevariable=valor
  14. 14. VARIABLES#!/bin/bashNombrevariable=´comando´
  15. 15. LLAMAR VARIABLE#!/bin/bashnombrevariable=valor $nombrevariable
  16. 16. LLAMAR VARIABLE#!/bin/bashnombrevariable=valorecho $nombrevariable
  17. 17. VARIABLES INTRODUCIDAS POR EL TECLADO#!/bin/shecho ”hola como te llamas”read nombre
  18. 18. VARIABLES INTRODUCIDAS POR EL TECLADO#!/bin/shecho ”hola como te llamas”read nombreecho ”Hola $nombre”
  19. 19. COMANDO READread [opciones] nombre_variable1 nombre_variable2 nombre_variableNread -p “Introduce el nombre y los apellidos” nombre apellidos
  20. 20. CondicionesOperadores.
  21. 21. OPERADORES RELACIONALES ARITMETICOS -lt (<) -gt (>) -le (<=) -ge (>=) -eq (==) -ne (!=)
  22. 22. OPERADORES ARITMETICOS + (adición) - (sustracción) * (producto) / (división) % (módulo)
  23. 23. CONDICIONES, BUCLES, CICLOS. ( If – Then ) ( While ) (UNTIL) ( FOR )
  24. 24. IFIf [condición] then lista de comandos else lista de comandos2fi
  25. 25. IF#!/bin/bashecho Adivina el valor numerico de la variable read A if [ $A = 1 ] then echo Acertaste exit 0 fi echo No acertaste exit
  26. 26. IF-ELSE#!/bin/bashecho Cual es tu Edadread edadif [ $edad -ge 18 ]; then echo eres mayor de edad else echo eres menor de edadfi
  27. 27. FOREl bucle for es distinto a los de otros lenguajes de programación. Básicamente, le permite iterar sobre una serie de `palabras contenidas dentro de una cadena.
  28. 28. FOR #!/bin/bash for i in $( ls ); do echo item: $i doneEn la segunda línea declaramos i como la variable que recibirá los diferentes valores contenidos en $( ls ).done indica que el código que ha utilizado el valor de $i ha acabado e $i puede tomar el nuevo valor.
  29. 29. WHILEEl bucle while ejecuta un trozo de códico si la expresión de control es verdadera, y sólo se para cuando es falsa (o se encuentra una interrupción explícita dentro del código en ejecución).
  30. 30. WHILE.while [ condición ]; do ... done
  31. 31. UNTILEl bucle until es casi idéntico al bucle loop, excepto en que el código se ejecuta mientras la expresión de control se evalúe como falsa.
  32. 32. UNTIL#!/bin/bash CONTADOR=20 until [ $CONTADOR -lt 10 ]; do echo CONTADOR $CONTADOR let CONTADOR-=1 done
  33. 33. FUNCIONESComo en casi todo lenguaje de programación, puede utilizar funciones para agrupar trozos de código de una manera más lógica, o practicar el divino arte de la recursión. function mi_func { mi_código }.
  34. 34. FUNCIONES 1 #!/bin/bash 2 function salir { 3 exit 4 } 5 function hola { 6 echo Hola 7 } 8 hola 9 salir 10 echo bushioPrimero se llama a la función hola, luego a la función quit, y elprograma nunca llega a la línea 10.
  35. 35. El sueño de un SELECT programador para hacer#!/bin/bash menús basados en texto. OPCIONES="Hola Salir" select opt in $OPCIONES; do if [ "$opt" = "Salir" ]; then echo done Muy similar a la exit elif [ "$opt" = "Hola" ]; then construcción for, sólo que echo Hola Mundo en vez de interar para else clear cada palabra en echo opción errónea $OPCIONES, se lo pide al fi done usuario .
  36. 36. GTK-DIALOG
  37. 37. GTK-DIALOG● Texto Atributos. (texto_atributos.sh)● Archivos de Entrada. (input.sh)● Button (button.sh)● CheckBox (check.sh, Checkb.sh, Combobox.sh)● ProgressBar (progresobar.sh, progresobarter.sh, progresobartest.sh)● Menu (Menu.sh, Menuicon.sh, Choo.sh)● Notebook (notebook.sh)
  38. 38. ¿Preguntas?
  39. 39. Links: http://bucio.com.mx/sobre/bash/http://www.gnu.org/software/bash/manual/bashref.html http://www.linuxconfig.org/Bash_scripting_Tutorialhttp://tldp.org/HOWTO/Bash-Prog-Intro-HOWTO.htmlhttp://bucio.com.mx/sobre/gtkdialog/

×