jueves, 29 de enero de 2015

Programación en Shell : Estructuras de control

Las estructuras de control sirven para cambiar el flujo del programa. De esta manera no se ejecuta unas instrucción detrás de otra, sino que dependiendo de la estructura de control hará una instrucción u otra. Hay varios tipos de estructuras de control:

Condición simple

IF: Si se cumple una condición se realizan estos comandos, si no se cumple se realizan estos otros comandos.

     if condicion
     then
           comandos
     else
           comandos
     fi

Condición múltiple

CASE: Se crean múltiples opciones y se selecciona una. Si no se selecciona ninguna se realiza la opción por defecto *)

case $variable in
    valor1) comandos
    valor2) comandos
    valor3) comandos
    valor4) comandos
    *) comandos
esac

Repetición

WHILE:

while condicion
do
        comando1
        comando2
done

Contador

for ((expr1;expr2;expr3))
do
     comando1
     comando2
done

Leer datos desde un fichero

#! /bin/bash
for i in $(cat /etc/passwd);do
       echo "$i"
done

lunes, 26 de enero de 2015

Programación en Shell : Operadores

Operadores aritméticos

+ Suma
- Resta
\* Producto
/ División
% Resto-Módulo de la división


Operadores relacionales

= Igual
!= Distinto
> Mayor
>= Mayor o igual
< Menor
<= Menor o igual

Operadores lógicos

| Or
& And

Archivos o directorios

-f  Verdadero (o) si existe y es un archivo regular
-s  Verdadero (o) si existe y tamaño > 0
-r  Verdadero (o) si existe y tiene permiso de lectura
-w Verdadero (o) si existe y tiene permiso de escritura
-x  Verdadero (o) si existe y tiene permiso de ejecución
-d  Verdadero (o) si existe y es un directorio

Valores numéricos

-lt  Menor
-le Menor o igual
-gt Mayor
-ge Mayor o igial
-eq Igual
-ne Distinto

Conectores
-o OR
-a AND
! NOT

lunes, 12 de enero de 2015

Introducción a la programación en Shell


¿Qué es una shell?

Shell es el intérprete de comandos, es decir, proporciona comunicación directa entre el usuario y el sistema operativo.

Programación en Shell

Programar en shell es crear archivos llamados scripts con extensión .sh que contienen comandos que actúan como programas y se ejecutan con ./nombre_archivo.sh o con la ruta absoluta por ejemplo "C:/Users/Desktop/nombre_archivo.sh". En general siguen las mismas normas que cualquier lenguaje de programación.

Editor vi

El editor vi es un editor de texto de pantalla completa que maneja en memoria el texto entero de un archivo. Es el editor clásico de UNIX.

Modos de vi:

- Modo comando: las teclas ejecutan acciones que permiten desplazar el cursor, recorrer el archivo, ejecutar comandos de manejo del texto y salir del editor. Es el modo inicial de vi.
- Modo de texto o modo de inserción: las teclas ingresan caracteres en el texto.
- Modo última línea o ex: las teclas se usan para escribir comandos en la última línea al final de la pantalla.

Cómo usar editor vi en Linux

Para abrir el programa vi
Para abrir un archivo vi nombre_archivo (Si no existe lo crea)
Comandos para salir:
:q para salir
:q! salir y descartar cambios
:wq guardar y salir

Comandos para agregar información
a para agregar texto a la derecha del cursor
o para agregar una línea (o a y ENTER)
:filenombre Guarda el documento con el nombre especificado
x borrar un carácter
j borrar el final de línea (une dos líneas)
dd borra la línea completa
u deshacer la última edición
:set nu muestra números de línea
:set nonu oculta números de línea
:n copy m copia la línea n detrás de la línea m
:n1, n2 copy m copia la línea n1 hasta la línea n2 detrás de la línea m

Variables

Las variables son nombres simbólicos para zonas de memoria que almacenan datos. El script debe comenzar con la línea #!/bin/sh. En la programación en shell todas las variables son de tipo string y no es necesario declararlas. Para asignar un valor a una variable se escribe;

nombre_de_la_variable=valor

Ejemplo
#!/bin/sh
# asignamos un valor:
a="Hola mundo"
# ahora mostramos el contenido de "a":
echo "A es:"
echo $a

Con echo $a mostramos el contenido de la variable $a y esto es lo que veríamos
A es:
Hola mundo

Parámetros

Los parámetros se pasan como argumentos al script por ejemplo un script que haga una suma:

Ejecutamos el script ./suma.sh y le indicamos como parámetros dos números

./suma.sh 5 4

Nos mostraría

5+4

Entrada y salida de datos por consola

Para que el ordenador lea desde la consola read y para que escriba echo

Ejemplo
#!/bin/bash
echo "Introduce el primero valor"
read v1
echo "El valor introducido es" $v1
echo -n "Introduce el segundo valor"
read v2
echo "El segundo valor introducido es" $v2

Leer varios datos

Read numero1
Read numero2
Read numero3