Buscar este blog

miércoles, 10 de abril de 2013

Creando scripts personalizados

Hace algunos días publiqué un post dedicado a aquellos problemas con la resolución de video. Al finalizar agregué un script que me hacía la vida más fácil, dado que ejecutaba las instrucciones que explicaba en el post.

Hoy quiero explicarles como crear nuestros propios scripts dentro de GNU/Linux.

¿Qué es un script?



Un script es un archivo compuesto por un conjunto de instrucciones que se ejecutan en la computadora una a la vez, de manera secuencial. Consiste en un archivo que contiene las líneas de instrucciones que deberán ejecutarse cada vez que mandemos llamar a dicho archivo.

Un script representa un método sencillo de programación. Dado que sus intrucciones son leídas por el intérprete del sistema, éste manda llamar a los programas o sentencias que ahí se indican.

Anatomía de un script


Básicamente, un script se compone de una cabecera, instrucciones y comentarios. Aún cuando no existe una nomclatura base para generar un script, se recomienda utilizar una similar a ésta:

inicio del script

comentarios <<que hace el scrip, quien lo realiza, etc>>

instrucciones del script

Con estos datos es posible entender nosotros qué realiza el script y cómo lo hace.

Crear un script


Para crear un script la mecánica es muy simple. Solamente haremos un archivo y le pondremos la extensión sh. Podemos lanzarnos directamente con un editor de archivos, o bien, crear un archivo vacío para luego editarlo.

Para crear un archivo vacío, haremos uso del comando touch.

# touch miScrip.sh

Esto crea un archivo sin nada en él, solamente el nombre.

O bien, podemos abrir un editor de textos, crear el archivo y escribir directamente en él las intrucciones. Esto puede hacerse con cualquier editor como nano, vi o emacs, o en modo gráfico con el gedit.

Supongamos que ya abrimos el archivo. Lo que tenemos que hacer a continuación es indicarle al script cuál será el intérprete de comandos que utilizará. Pueden ser /bin/bash o /usr/bin/pearl. En realidad no importa cuál intérprete se utilice. Esto es solamente para indicarle a GNU/Linux con que intérprete leerá los comandos.

Ya que decidimos cuál será el intérprete a utilizar tenemos que agregar nuestra primera línea al archivo. En esta línea se le indicará cuál es el intérprete de comandos. Supongamos que elegimos bash. La línea será:

#! /bin/bash/

Si por el contrario decidimos usar pearl, la línea deberá ser como ésta:

#! /usr/bin/pearl

Es importante escribirlo tal y como se indica. La combinación de caracteres #! le indicará a GNU/Linux de donde debe sacar el intérprete para los comandos.

Un script básico


Supongamos que tenemos que realizar una tarea repetitiva. Esta tarea consiste en movernos del directorio en que nos encontremos a un directorio llamado "Paso" ubicado en /home/usuario. Luego, en ese directorio borraremos un archivo llamado "miFile.txt". Y finalmente nos moveremos al directorio /home.

Si este proceso lo tenemos que realizar unas veinte veces al día, lo que tendríamos que hacer (secuencialmente) cada vez que se requiere es esto:

# cd /home/Paso <<enter>>
# rm miFile.txt <<enter>>
# cd /home <<enter>>

Son tres instrucciones solamente, pero, realizar estas tres instrucciones veinte veces al día resulta monótono. Si por el contrario, estas intrucciones se encuentran en un solo archivo, sólo tenemos que ejecutar ese archivo cada vez que lo necesitemos.

Como a mi me gusta usar la terminar, abriré una y escribiré lo siguiente:

# nano miScript.sh

Observen que el nombre de archivo tiene que llevar por fuerza la extensión .sh.

Una vez abierto el editor escribiré mi script de la siguiente manera:

!# /bin/bash

# Este script realiza la tarea más monótona del día
# que consiste en realizar mi trabajo. Escrito para bash.

cd /home/Paso
rm miFile.txt
cd /home
echo "Tarea realizada. Have a nice day!"

Si quisiéramos que el intérprete fuea perl, escribiremos el script de la siguiente manera:


!# /usr/bin/pearl

# Este script realiza la tarea más monótona del día
# que consiste en realizar mi trabajo. Escrito para pearl.

cd /home/Paso
rm miFile.txt
cd /home
echo "Tarea realizada. Have a nice day!"


Guardaré mi archivo y ¡Listo! Mi primer script está creado.

Observen que la primera línea del script le indicará a GNU/Linux cuál será el intérprete a usar.

La segunda y tercera línea son un comentario sobre lo que hace el script. Los comentarios se indican con el símbolo #.

Posteriormente se especifican las tareas que realizará el script de manera secuencial.

Finalmente imprimirá en pantalla un pequeño mensaje. Las impresiones de pantalla se indican con el comando echo.

Ejecutando el script


Hasta este momento nuestro script es solamente un conjunto de líneas en un archivo. Sin embargo, si tratamos de ejecutarlo obtendremos un mensaje de error. Esto se debe a que aún no le hemos dado permisos de ejecución.

Para poder ejecutar el script, desde la consola escribiremos lo siguiente:

#sudo chmod 755 miScript.sh 

La opción 755 le da permisis sólo al propietario, pero si queremos que el script sea funcional a cualquier usuario, entonces utilicemos 777.

Escribiremos la contraseña y ¡Listo! Ahora nuestro script está listo para funcionar.

Desde la consola escribiremos:

# ./miScript.sh

o bien

# sh miScript.sh

Es importante escribir ./ o sh antes del nombre del script, de lo contrario GNU/Linux no sabrá que se trata de ejecutar.

Ahora, si son más bien flojos y no quieren usar la consola, pueden hacer clic con el botón derecho del mouse en el archivo desde su administrador de archivos, seleccionar Propiedades, luego la pestaña Permisos y finalmente clic en la opción Permitir ejecutar el archivo como un programa.

Ya con esto simplemente lo mandaremos llamar con un doble-clic o bien desde la consola.

¡Y listo! Nuestra tarea monótona se verá aliviada, al ejecutar una única sentencia en lugar de cuatro o cinco cada vez.

Finalmente


Recuerden que en un script podemos incluir todos aquellos comandos que utilizamos en GNU/Linux. Podemos usar sudo, su, clear, ls, etc. Solamente sean cuidadosos sobre lo que hacen para evitar problemas en su sistema.

Happy Hacking!!!

No hay comentarios:

Publicar un comentario

Tus comentarios son muy importantes. Gracias por tomarte tu tiempo.

Happy Hacking!!!