24 sept 2013

Shell Script; Las Variables


 Introducción

Como vimos en la entrada anterior de, Shell Script Básico, un Script es un archivo que contiene una serie de comandos que son ejecutados secuencialmente por un interprete.

Aprendimos como crearlos, editarlos y ejecutarlos, además de que en un shell script podemos incluir los comandos básicos de Linux.

En esta ocasión continuaremos con algunos puntos más avanzados en la programación de scripts.

Las Variables.

Para los que no conocen de programación, veamos que es una variable: Las variables son espacios reservados en la memoria que, como su nombre indica, pueden cambiar de contenido a lo largo de la ejecución de un programa. De la siguiente manera le damos un valor a una variable:

nombre_variable=valor]

Sencillo no? También podemos guardar salidas de programas:

nombre_variable=`comando`
o
nombre_variable=$(comando)

Ejemplo:

variable=$(ls)

Al llamar la variable nos dará una lista de archivos y directorios de la ruta en l que nos encontramos.

También podemos asignarles valor a las variables con el comando (read).

read [ opciones] nombre_variable2 nombre_variableN

Ejemplo:

read -p "Introduce el Nombre y la edad" nombre edad

Las opciones mas usadas son:

-n num_car : Numero máximo de caracteres que se pueden introducir
-p "frase" : Muestra en la pantalla una frase
-d "delimitador" : Especifica un delimitador. Por ejemplo: si el delimitador es un ";" todo lo que este antes del signo lo tomara una variable y lo que este después en la siguiente variable.

Para utilizar los valores de una variable en el código lo hacemos así:

$nombre_variable

y para mostrarla:

echo $nombre_variable

Vamos a ver unos ejemplos sencillos que de una vez nos ayuden a repasar el post anterior.


#! /bin/bash
mkdir ~/Escritorio/Ejemlpo/
> ~/Escritorio/Ejemplo/ejemplo.txt
clear
read -p "Por favor Ingresa tu nombre y tu apellido " nombre apellido
saludo="Hola"
echo $saludo $nombre $apellido > ~/Escritorio/Ejemplo/ejemplo.txt
gedit ~/Escritorio/Ejemplo/ejemplo.txt &


Explicación:

1) Creamos un directorio llamado Ejemplo en el escritorio

2) Creamos un archivo ejemplo.txt dentro del directorio que recién creamos

3) Con el comando clear, Limpiamos la pantalla del terminal

4) le pedimos al usuario que ingrese su nombre y su apellido los cuales serán guardados en las variables nombre y apellido respectivamente

5) Guardamos la cadena "Hola" en la variable saludo

6) Imprimimos las variables $salud $nombre y $apellido en el archivo que creamos en el directorio Ejemplo

7) Por ultimo abrimos el archivo ejemplo.txt con gedit

A continuación un script que se me ocurrió el cual podría resultar útil para los diseñadores web para crear estructuras básicas para paginas web de ejemplos o cosas por el estilo con solo ejecutar un script


#! /bin/bash
clear
read -p "Por favor Ingresa el nombre del directorio raíz de tu pagina " dir
read -p "Por favor Ingresa el titulo tu pagina " titulo
read -p "Por favor Ingresa el nombre de tu pagina " nombreapp
read -p "Por favor Ingresa los tags de tu pagina " tags
read -p "Por favor Ingresa la descripción de tu pagina " descripcion
read -p "Por favor Ingresa el nombre el autor de tu pagina " autor
mkdir /var/www/$dir/;mkdir /var/www/$dir/js;mkdir /var/www/$dir/css;
mkdir /var/www/$dir/img
> /var/www/$dir/index.html; > /var/www/$dir/css/style.css
(
    echo '<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">'
    echo '<html xmlns="http://www.w3.org/1999/xhtml" lang="es">'
    echo '    <head>'
    echo "        <title>$titulo</title>"
    echo '        <meta name="application-name" content="'$nombreapp'" />'
    echo '        <meta name="keywords" content="'$tags'" />'
    echo '        <meta name="description" content="'$descripcion'" />'
    echo '        <meta name="author" content="'$autor'" />'
    echo '        <meta http-equiv="content-type" content="text/html; charset=utf-8" />'
    echo '        <link href="css/style.css" rel="stylesheet" type="text/css" media="screen" />'
    echo '        <script type="text/javascript">'
    echo '        </script>'
    echo '    </head>'
    echo '    <body>'
    echo '    </body>'
    echo '</html>'
) > /var/www/$dir/index.html
firefox /var/www/$dir/index.html &
gedit /var/www/$dir/index.html &


Explicación:

1) Limpiamos la pantalla del terminal

2) Le pedimos al usuario ciertos datos necesarios y los guardamos en variables:

dir: Nombre del directorio raíz de la pagina
titulo: Titulo de la pagina
nombreapp, tags, descripcion y autor: para los meta datos application-name, keywords, description y author

3
) Creamos el directorio raíz como vemos en el código el nombre del directorio es el valor de la variable $dir. Dentro de este directorio crearemos los directorios css, js e img

4) Creamos los archivos index.html y style.css dentro del directorio raíz y el directorio css respectivamente

5) Definimos lo que sera el contenido del documento, como podemos ver en el código todos los echo están encerrados en paréntesis y se les dice que se harán dentro del archivo index.html. Con esto logramos que se escriba dentro del archivo en el orden en que aparecen en el script.

6) por ultimo abrimos la pagina en el navegador, en mi caso firefox y en el editor de texto gedit listo para ser editado.

Como siempre espero que les sea de gran utilidad.

No hay comentarios:

Publicar un comentario