.

Breaking News
recent

-

Algo sobre Bash

0" src="http://k43. /mundo linux/1/3/5/3/3/7/9/nechuz/722.jpg?3534" />

Un bash script es un pequeño programa escrito en el lenguaje de nuestra consola bash. Es una herramienta muy potente y útil que sirve principalmente para automatizar tareas comunes que hacemos de forma manual.



Cómo se hacen los bash script:





Lo primero es indicar el lugar donde se encuentra nuestra bash, por defecto se esta en /bin/bash. Esto lo hacemos del siguiente modo /bin/bash con ésto le decimos a nuestra consola donde se encuentra un determinado programa, en este caso, nuestra propia shell. Tras esto empezamos con las sentencias.

Podemos usar estructura de control (if, else, while, until ...) y variables al igual que en la mayoría de los lenguajes de programación. Las variables son fuertemente tipadas (una vez definido su tipo no podrá cambiarse) y no hay que especificar su tipo (la shell es la encargada de esa labor).

Las instrucciones que podemos emplear son las mismas que emplearíamos en nuestra consola, pongo un ejemplo de un script sencillo que nos actualiza el sistema:



/bin/bash
sudo aptitude update  sudo aptitude upgrade sudo aptitude dist-upgrade 


Abrimos nuestro editor de texto preferido (por ejemplo gedit) y copiamos ese script, lo guardamos por ejemplo con el nombre de Actualizar.sh

Para ejecutarlo podemos hacer lo siguiente, desde la consola nos situamos en el directorio donde guardamos el script y tecleando sh Actualizar.sh lo ejecutamos. Es posible que no tengamos permisos de ejecución para ese script y lo solucionamos tecleando en consola chmod +x Actualiza.sh.

Si integrar nuestro script en el sistema de forma que podamos llamarle desde cualquier lugar y poniendo solo su nombre, lo movemos a la carpeta /bin
Hecho eso, bastara con poner Actualiza.sh desde cualquier lugar para que se ejecute.

Al igual que en la consola podemos usar tuberías, esto es pasarle la salida de un comando a otro. Para ello usamos este símbolo |

ls -F | grep /

Este comando mostrara en pantalla sólo directorios. ls -F muestra todos los archivos añadiendo al final de cada directorio el caracter espaciador (/). grep toma la salida de ls -F y filtra todos los archivos que contengan el carácter /

Podemos mostrar la salida de un programa por otro medio que no sea el estándar (pantalla) por ejemplo a un fichero. Para ello usamos el caracter > .



ls --all ficheros.txt

Esto creará un archivo llamado ficheros.txt conteniendo el resultado de ls --all
Del mismo modo con el carácter < variamos el flujo de entrada (por defecto el teclado).

Para crearnos variables, simplemente ponemos el nombre de la variable que queramos y le asignamos un valor. Si queremos usarla posteriormente deberemos anteponer $ al nombre de la variable. Un ejemplo que ilustra el uso de variables es el siguiente:



#!/bin/bash
Variable=Mi primera variable
echo $Variable


Hay que notar que echo imprime por pantalla aquello que se le pasa.

Podemos declararnos funciones, como en cualquier lenguaje de programación.
Para ello usamos la palabra function:



#!/bin/bash
Saludo=Hola
function hola {
local Saludo=Buenas
echo $Saludo
}
echo $Saludo
hola
echo $Saludo


Las variables que se encuentran dentro de la función son variables locales y ocultan a las variables globales (externas a la función). Así cuando definimos la variable local Saludos, estamos diciendo que la variable Saludo es una nueva variable y el sistema la tratara como una variable nueva.

Uso de estructuras de control:
If Esta es la estructura de control mas básica.
Evalúa una condición y ejecuta un código dependiendo de si la condición es verdadera o falsa.



if [ condición booleana]; then
sentencias
fi


Adicionalmente podemos usar la sentencia else que ejecuta código en caso de que la condición no se cumpla:



if [condicion booleana]; then
sentencias
else
sentencias
fi


Podemos anidar varios else



if [condición booleana]; then
sentencias
elif [condicion booleana]; then
sentencias
else
sentencias
fi


Un ejemplo que ilustra el uso de este tipo de estructuras de control:



#!/bin/bash
A=hola
B=buenas
if [  = $B ]; then
echo Ambos son iguales
elif [ $A = Buenos dias] then
echo -e $A vale buenos días
else
echo Ambos son distintos
fi


Otro tipo de estructura de control es el while. Este bucle se ejecuta indefinidamente mientras la condición sea cierta.



while [condicion booleana]; do
sentencias
done




#!/bin/bash
CONTADOR=0
while [ $CONTADOR -lt 10 ]; do
echo El contador es $CONTADOR
let CONTADOR=CONTADOR+1
done


Para que veais lo sencillo que resulta hacer un script os voy a dejar uno que pide una fecha y muestra un calendario de la fecha:



#!/bin/bash
var1=Introduzca un año
var2=$(zenity --entry --text $var1)
var3=$(zenity --entry --text Introduzca un mes)
var4=$(zenity --entry --text Introduzca un día)
zenity --calendar --year $var2 --day $var4 --month $var3


Espero les sirva para resolver algunas dudas sobre scripting. Saludos!










No hay comentarios:

Publicar un comentario en la entrada

-

Con la tecnología de Blogger.