Bash: Uso de la estructura de control if-then

Para realizar esta prueba, doy por hecho que ya sabes algunos comandos basicos de la shell y lo basico de ubuntu linux, pero aun asi vamos a realizar esta prueba paso por paso y espero que no te atores con ninguno, empecemos; estando en el escritorio:

  1. Abre una terminal: presiona ALT+F2, escribe gnome-terminal, pulsa ENTER.
  2. Crea un nuevo archivo: escribe touch script4.sh, pulsa ENTER.
  3. Abre el archivo recien creado con el editor nano: escribe nano script4.sh, pulsa ENTER.
  4. Escribe el siguiente codigo: (en el codigo se explica lo que hace cada cosa):
    #!/bin/bash
    #Ejemplo #4: Script que muestra como utilizar la estructura de control if-then
    #Author: Gonzalo Silverio   gonzasilve@gmail.com
    #Archivo: script4.sh
    #Si el nombre juan esta en el archivo nombres.txt 
    #devolvera true. El comando se evalua a falso o verdadero.
    #verdadero =devolvio un resultado, falso = no devolvio nada
     if grep juan nombres.txt
       then
         echo 'El nombre juan ESTA en la lista de nombres'
     fi
    echo
    echo ---------Fin del script.-------------
    
  5. Guarda los cambios: presiona CTRL+O (O, no cero), te pedira el nombre del archivo, pulsa ENTER.
  6. Cierra el editor nano: presiona CTRL+X.
  7. Da permiso de ejecucion al archivo: escribe chmod +x script4.sh, pulsa ENTER.
  8. Ejecuta el script: escribe sh script4.sh

La sentencia if evalua a falso o verdadero la ejecucion de un comando. Observe que la palabra then debe ir en la siguiente linea (no puede ir adelante del comando a evaluarse), por que sino marca error de sintaxis. A continuacion pongo una imagen donde se realizan algunos pasos anteriores y por supuesto; se muestra la ejecucion del script:

Ejecucion 1 del script4 para Bash

Ejecucion 1 del script4 para Bash


Como se puede observar el comando grep informa al usuario que el archivo nombres.txt no existe. Ahora muestro otra imagen:
Ejecucion 2 de script4 para Bash

Ejecucion 2 de script4 para Bash


Como se puede ver en la imagen hemos creado el archivo nombres.txt y le agregue varios nombres (gonza, javier,itzel), pero no el de juan y ejecutamos el archivo y vemos que no entra al if y por tanto no se muestra nada (grep ya no manda msg).

A continuacion le agregamos otros dos nombres (juan y monica) y vemos que ahora si entra al if y muestra la unica instruccion dentro del if (avisa que el nombre juan si esta).

nota 1: Si no tienes nano puedes instalarlo con el comando sudo apt-get install nano
nota 2: Otra forma de ejecutar el script es escribir ./script4.sh
nota 3: Recuerda que todas las lineas del script que empiezan con # (gatito) son comentarios; a excepcion de la primera, asi que puedes omitirlas y no escribirlas.

Bueno eso es todo y pues si tienes dudas, te sirvio el ejemplo o quieres decir algo puedes dejar tu comentario que con gusto lo leere y si es apropiado te contesto. Hasta pronto.

Bash: Uso de la variable $? para depurar scripts de shell.

Para realizar esta prueba, doy por hecho que ya sabes algunos comandos basicos de la shell y lo basico de ubuntu linux, pero aun asi vamos a realizar esta prueba paso por paso y espero que no te atores con ninguno, empecemos; estando en el escritorio:

  1. Abre una terminal: presiona ALT+F2, escribe gnome-terminal, pulsa ENTER.
  2. Crea un nuevo archivo: escribe touch script3.sh, pulsa ENTER.
  3. Abre el archivo recien creado con el editor nano: escribe nano script3.sh, pulsa ENTER.
  4. Escribe el siguiente codigo: (en el codigo se explica lo que hace cada cosa):
    #!/bin/bash
    #Ejemplo #3: Script que muestra como utilizar la variable $? para depurar un programa y
    #            saber si un comando se ejecuto con exito.
    #            Si hubo exito    $?=1
    #            Si NO hubo exito $?=2
    #Author: Gonzalo Silverio -> gonzasilve@gmail.com
    #Archivo: script3.sh
    #Limpiar la consola
    clear
    #Mostrar informacion al usuario
    echo 'A continuacion se buscara una cadena en un archivo'
    echo 'no existente y se mostrara'
    echo 'lo que devolvio la variable $?'
    echo 'Comando: grep donde poema.txt'
    #ejecutar comando grep
    grep donde poema.txt
    #Mostrar el valor de la variable al usuario
    echo $?
    echo
    #Avisar al usuario que se ha terminado de ejecutar el script
    echo ---------Fin del script.-------------
    
  5. Guarda los cambios: presiona CTRL+O (O, no cero), te pedira el nombre del archivo, pulsa ENTER.
  6. Cierra el editor nano: presiona CTRL+X.
  7. Da permiso de ejecucion al archivo: escribe chmod +x script3.sh, pulsa ENTER.
  8. Ejecuta el script: escribe sh script3.sh

La variable $? es una variable de la shell y en ella esta el codigo de retorno del ultimo comando ejecutado. devuelve 1 cuando el comando se ejecuto con exito, en caso contrario (no se ejecuto con exito) devuelve 2. El comando grep busca una cadena dentro de un archivo y muestra todas las lineas que contengan esa cadena. A continuacion pongo una imagen donde se realizan algunos pasos anteriores y por supuesto; se muestra la ejecucion del script:

Ejecucion del scrip3 para Bash.

Ejecucion del scrip3 para Bash.


Como se puede observar el comando grep informa al usuario que el archivo no existe y el 2 que esta en la siguiente linea es el valor de la variable $? (grep no se ejecuto con exito). A continuacion vamos a crear el archivo poema.txt para ver la ejecucion del script nuevamente:
En la terminal de gnome escribe touch poema.txt, pulsa ENTER
Vuelve a ejecutar el script3, en la terminal escribe sh script3.sh, pulsa ENTER. A continuacion te muestro una imagen del terminal y el resultado de la ejecucion:
Ejecucion del script3 para Bash

Ejecucion del script3 para Bash


como vez ahora la variable $? tiene el valor 1 (el comando grep se ejecuto con exito), pues el archivo poema.txt si existe sin embargo como no tiene nada escrito dentro, pues grep no devolvio ninguna linea.

nota 1: Si no tienes nano puedes instalarlo con el comando sudo apt-get install nano
nota 2: Otra forma de ejecutar el script es escribir ./script3.sh
nota 3: Recuerda que todas las lineas del script que empiezan con # (gatito) son comentarios; a excepcion de la primera, asi que puedes omitirlas y no escribirlas.

Bueno eso es todo y pues si tienes dudas, te sirvio el ejemplo o quieres decir algo puedes dejar tu comentario que con gusto lo leere y si es apropiado te contesto. Hasta pronto.

Bash: Lectura de datos del teclado (uso de instruccion read)

Para realizar esta prueba, doy por hecho que ya sabes lo basico de ubuntu linux, pero aun asi vamos a realizar esta prueba paso por paso y espero que no te atores con ninguno, empecemos; estando en el escritorio:

  1. Abre una terminal: presiona ALT+F2, escribe gnome-terminal, pulsa ENTER.
  2. Crea un nuevo archivo: escribe touch script2.sh, pulsa ENTER.
  3. Abre el archivo recien creado con el editor nano: escribe nano script2.sh, pulsa ENTER.
  4. Escribe el siguiente codigo: (en el codigo se explica lo que hace cada cosa):
    #!/bin/bash
    #Ejemplo #2: Script que muestra como asignar valores a variables en forma interactiva por el
    #            usuario, uso de la funcion read.
    #Author: Gonzalo Silverio  -> gonzasilve@gmail.com
    #Archivo: script2.sh
    #pedir el dato al usuario
    echo 'Introduzca un  valor para la variable var1:'
    #leer el dato del teclado y guardarlo en la variable de usuario var1
    read var1
    #Mostrar el valor de la variable de usuario
    echo $var1
    echo 
    #Avisar al usuario que se ha terminado de ejecutar el script 
    echo ---------Fin del script.-------------
    
  5. Guarda los cambios: presiona CTRL+O (O, no cero), te pedira el nombre del archivo, pulsa ENTER.
  6. Cierra el editor nano: presiona CTRL+X.
  7. Da permiso de ejecucion al archivo: escribe chmod +x script2.sh, pulsa ENTER.
  8. Ejecuta el script: escribe sh script2.sh

La instruccion read permite leer cadenas del teclado, se pueden asignar n numero de cadenas de caracteres a una variable, hasta que se pulse ENTER. Otra cosa, como se puede ver para la lectura con la instruccion read no es necesario poner el signo $ (dolar), pero si es necesario para la instruccion echo. A continuacion pongo una imagen donde se realizan algunos pasos anteriores y por supuesto; se muestra la ejecucion del script:

Ejecucion de script2 para Bash

Ejecucion de script2 para Bash

nota 1: Si no tienes nano puedes instalarlo con el comando sudo apt-get install nano
nota 2: Otra forma de ejecutar el script es escribir ./script2.sh
nota 3: Recuerda que todas las lineas del script que empiezan con # (gatito) son comentarios; a excepcion de la primera, asi que puedes omitirlas y no escribirlas.

Bueno eso es todo y pues si tienes dudas, te sirvio el ejemplo o quieres decir algo puedes dejar tu comentario que con gusto lo leere y si es apropiado te contesto. Hasta pronto.

Bash: Utilizar variables de usuario

Para realizar esta prueba, doy por hecho que ya sabes lo basico de ubuntu linux, pero aun asi vamos a realizar esta prueba paso por paso y espero que no te atores con ninguno, empecemos; estando en el escritorio:

  1. Abre una terminal: presiona ALT+F2, escribe gnome-terminal, pulsa ENTER.
  2. Crea un nuevo archivo: escribe touch script1.sh, pulsa ENTER.
  3. Abre el archivo recien creado con el editor nano: escribe nano script1.sh, pulsa ENTER.
  4. Escribe el siguiente codigo: (en el codigo se explica lo que hace cada cosa):
    #!/bin/bash
    #Ejemplo #1: Script que muestra como como utilizar variables a las que se les puede asignar 
    #            un valor mediante codigo.
    #Author: Gonzalo Silverio -> gonzasilve@gmail.com
    #Archivo: script1.sh
    #inicializar variable1
    var1='Hola '
    #inicializar variable2
    var2='que tal como estas.'
    #Mostrar el contenido de las dos variables
    echo $var1
    echo $var2
    echo
    #Avisar al usuario que se a terminado de ejecutar el script 
    echo ---------Fin del script.-------------
    
  5. Guarda los cambios: presiona CTRL+O (O, no cero), te pedira el nombre del archivo, pulsa ENTER.
  6. Cierra el editor nano: presiona CTRL+X.
  7. Da permiso de ejecucion al archivo: escribe chmod +x script1.sh, pulsa ENTER.
  8. Ejecuta el script: escribe sh script1.sh

A continuacion pongo una imagen donde se realizan algunos pasos anteriores y por supuesto; se muestra la ejecucion del script:

Ejecucion de script1 para Bash

Ejecucion de script1 para Bash

nota 1: Si no tienes nano puedes instalarlo con el comando sudo apt-get install nano
nota 2: Otra forma de ejecutar el script es escribir ./script1.sh
nota 3: Recuerda que todas las lineas del script que empiezan con # (gatito) son comentarios; a excepcion de la primera, asi que puedes omitirlas y no escribirlas.

Bueno eso es todo y pues si tienes dudas, te sirvio el ejemplo o quieres decir algo puedes dejar tu comentario que con gusto lo leere y si es apropiado te contesto. Hasta pronto.

Introduccion a Bash y el Hola Mundo!

Una breve introduccion a Bash.
¿QUE ES Bash?
Es la abreviatura de Bourne-Again Shell, es un shell de Unix. Estaras pensando “¿Y que es un shell?”, te contesto: Un shell es un programa intermediario entre un usuario y el Sistema operativo instalado en su computadora. Es algo asi como una forma de comunicacion, a travez de un shell podemos darle ordenes a nuestro sistema operativo para que las realice (y si es necesario que nos devuelva resultados).

Para poder darle esas ordenes al S.O. debemos hacerlo usando un lenguaje especial (algo asi como en un lenguaje de programacion), la sintaxis de ese lenguaje es lo que me interesa, por que pienso que si uno conoce la sintaxis correcta pues ya tiene una gran parte avanzada en la programacion Bash. pero dejame decirte que en Unix hay infinidad de shells, pero uno de los mas conocidos, usados y probados es el Bash. Cada Shell tiene sus particularidades y caracteristicas que los hacen diferentes a los otros, por supuesto cada quien puede escoger las shell que mas le agrade, en lo particular a mi me gusta mas Bash porque en Linux por lo que veo se usa mucho en los scripts del sistema, en los scripts de instalacion, etc. y ¿por algo sera no?.Bueno sin mas rollo voi a empezar con una introduccion a la programacion Bash.

Ejemplo de un scrip para Bash
Como es tipico vamos a hacer el “Hola mundo”, por tradicion, (sino se pierde, jajajj). Lo vamos a hacer por pasos y con ejemplos; asi aprendemos mas rapido:

RESUMEN CORTO PARA CREAR Y EJECUTAR EL SCRIPT hola_mundo.sh

  1. Crear un archivo.
  2. Escribir el script y guardar el archivo con la extension .sh.
  3. Abrir una terminal.
  4. Entrar a la carpeta donde esta el script y dar permisos de ejecucion.
  5. Ejecutar el archivo.

PASO POR PASO PARA CREAR Y EJECUTAR EL SCRIPT hola_mundo.sh

  1. Crear un archivo. Con el editor que prefieras (gedit por ejemplo) crea un nuevo archivo en el escritorio y agregale lo siguiente:
    #!/bin/bash
    #Descripcion: Clasico script que muestra un saludo en pantalla
    #Author: Gonzalo Silverio -> gonzasilve@gmail.com
    #Archivo: hola_mundo.sh
    echo Hola Mundo bash
    
  2. Si lo deseas puedes quitar los datos de la descripcion, autor y nombre del archivo pues esos son solo comentarios. Pero te aconsejo poner siempre un encabezado tus programas. Lo que realmente importa del script es la primera linea:

    #!/bin/bash
    

    que sirve para indicar donde esta la shell a usar en el script. Y la ultima linea:

    echo Hola Mundo bash
    

    La cual sirve para mostrar un mensaje con el comando echo.

  3. Guardar el archivo con la extension .sh. Ahora guarda el archivo anterior con el nombre hola_mundo.sh en el escritorio (para que sea mas facil encontrarlo).
  4. Abrir una terminal. Ahora abre una terminal, para esto presiona las teclas <ALT>+<F2> y escribe gnome-terminal y pulsa la tecla <ENTER>.
    Ventana Ejecutar... de GNome

    Ventana Ejecutar... de GNome

    Se presenta la terminal (linea de comandos):

    Terminal de GNome

    Terminal de GNome

  5. Entrar a la carpeta donde esta el script y dar permisos de ejecucion. En esta ventana primeramente vamos a entrar en la carpeta del escritorio introduciendo la orden cd Escritorio y ahora vamos a aplicar permisos de ejecucion al archivo creado en el paso 1. En la terminal escribir chmod +x hola_mundo.sh, y presionar la tecla <ENTER>, una imagen dice mas que mil palabras:
  6. Dando permisos de ejecucion a hola_mundo.sh

    Dando permisos de ejecucion a hola_mundo.sh

  7. Ejecutar el script. Ahora vamos a ejecutar el script escribiendo el comando sh hola_mundo.sh o escribiendo ./hola_mundo.sh y pulsa <ENTER>; las dos formas son validas y ejecutan el script, aka el resultado:
    Ejecucion del script HolaMundo.sh

    v

Bueno eso es todo y espero que le hayas entendido algo. Los ejemplos que ire mostrando en otras entradas del blog mostraran cosas basicas de la programacion bash; como usar variables, leer un valor del teclado, etc. cosas muy basicas y al final mostrare un ejemplo mas completo. Hasta pronto y si quieres el script ya sabes, deja tu mail y te lo mando, nos vemos.

A %d blogueros les gusta esto: