martes, 27 de noviembre de 2012

Crear scripts ultrafáciles ¡A dominar la consola!

Alguno al leer el título de este artículo estará pensando que script y fácil son palabras antónimas. Eso no es necesariamente así, puede haber scripts sumamente complejos, solo aptos para programadores, pero también sencillos, para brutos como yo. Y esos son los que vamos a ver.

¿Y que utilidad tienen? Pues nosotros vamos a utilizarlos para simplificarnos la vida en la consola, y evitar teclear comandos larguísimos, en los que siempre nos comemos algo. O para ese comando que siempre escribimos mal. Ademas, veremos que la consola no es un monstruo negro lleno de letras, y en ocasiones, tiene su utilidad. Ademas, cuando creas un script y te funciona, te sientes como DIOS.

Pero lo primero, es lo primero. ¿Que es un script? Pues simplificando mucho, es un ficherito de texto con una serie de comandos metidos dentro y al que le damos permiso para ejecutarse. De esta manera al ejecutar este fichero, se irán ejecutando los comandos que contiene el ficherito..

Un ejemplo sencillo. Imaginemos un script que no es más que el siguiente texto y que tiene permisos de ejecución.
#!/bin/bash
# Un script de ejemplo
echo “Hola mundo”
Si ejecutamos este script, lo único que hará sera mostrar en la pantalla el mensaje “Hola mundo”. No es muy útil, pero nos sirve para explicar que hace y como:

La primera linea le indica al sistema que es un script y que esta pensado para bash. Nosotros lo vamos a poner siempre así, porque siempre vamos a crear scripts para bash, pero también se pueden crear para python, o para cualquier otro entorno.

La segunda linea es un comentario, para que si más tarde editas el script, tengas orientación de que hiciste y como. Es muy recomendable siempre poner comentarios para que cuando editemos los scripts o los pasemos a otros, entiendan que se hizo. Los comentarios son lo que hay en una linea después del #

La tercera linea es el comando en sí. En este caso es solo uno y sencillito, pero podría haber miles y muy enrevesados. Incluso podemos hacer que se ejecuten unos u otros según alguna condición, y que se pasen datos entre ellos. Pero eso ya es muy complicado para verlo aquí y ahora.

Bueno, pues vamos con la primera utilidad de estos scripts ultrasencillos. Imagina que por algún motivo utilizas el comando echo con frecuencia, pero siempre lo escribes mal, algo así como eccho, o que te resulta difícil recordar el comando o que prefieres escribir repite en vez de echo. Pues creamos el siguiente script, que se llamara repite.
#!/bin/bash
# Un script de ejemplo con variables
echo $1 $3 $2
echo $2 $2
¿¡Qué es eso de las variables!? ¿Qué es ese $1 $2 $3!? Tranquilo, que no es nada raro. Cuando escribes algún comando en la consola, siempre sueles escribirlo con algún parámetro, no sueles escribir ls, si no ls -l o ls -ah o algo así. Pues nuestro a nuestro script le va a pasar lo mismo. Le vamos a pasar parámetros. Y lo que haremos sera que cada cosa que escribamos junto al nombre del script lo almacenaremos dentro de una variable, que es un trozo de memoria con un nombre. Luego para utilizarlo, usaremos la variable donde se guardo el parametro, que no es más que $ y el número de orden del parámetro al escribirlo.

Pero vamos a verlo más claro usando nuestro script de ejemplo. Supongamos que lo hemos llamado prueba y que lo ejecutamos tal que así:
  • ./prueba uno dos tres
El nos responderá
uno tres dos
dos dos
Lo que ha hecho a sido coger cada palabra después del nombre del script y guardarlo en variables llamadas $1, $2, $3... Cuando luego ejecuta el comando echo por primera vez, cambia el nombre de la variable por lo que había guardado en ella. Así que es como si hubiéramos escrito
  • echo uno tres dos
La segunda vez que se ejecuta echo vuelve a cambiarse el nombre de la variable por lo que se ha guardado en ella, así que ahora es como si hubiéramos escrito
  • echo dos dos
Visto como funciona, ¿cual es la utilidad? Pues por ejemplo, cambiar un comando del que nunca te acuerdas por otro que te sea fácil recordar. Ademas, se vas a poder pasar parámetros de igual manera que a ese comando endiablado que se le resiste a tu memoria.

Otra utilidad es cuando un comando tiene una serie incomprensible de parámetros, como por ejemplo el que utilizábamos en este viejo artículo para ver videos en modocarácter.

Podemos crear un script llamado videofriki que tenga el siguiente contenido
#!/bin/bash
# Vamos a ver un video en formato texto
# Vamos a indicar donde esta el video a reproducir en forma de parámetro...
# ...así sirve para cualquier video
clear #borramos pantalla para que quede elegante
echo “Vamos a ver “ $1 #decimos que vamos a ver
sleep 4 #esperamos 4 segundos para que de tiempo a leer el mensaje de antes
clear #volvemos a borrar pantalla
mplayer -vo caca $1 #y a reproducir
Y ahora ejecutando
  • ./videofriki /media/datos/pelis/escondidas/pornazo.avi
Quedamos como un friki salido sin esfuerzo.

5 comentarios:

  1. jaja muy buena, y muchas gracias por los conocimientos. No sabia de la existencia de este blog.

    ResponderEliminar
    Respuestas
    1. Ahora que ya lo conoces, espero que te sientas tentado de volver de cuando en cuando

      Eliminar
  2. Agradezco mucho esta información, soy novel en linux, apenas hace un año que me pase al mundo del software libre, y uso mint. Tentado estoy de cambiarme, pero por el momento no tomo la descisión. Estoy probando aún en live sparkylinux, que según he leido es debian sin mayor ajuste. Un saludo desde Guatemala.

    ResponderEliminar
    Respuestas
    1. Bienvenido al soft libre.
      Saludos a Guatemala desde España

      Eliminar
  3. bueno digamos que soy grande en windows y niño en linux pero me las arreglo

    ResponderEliminar

prekes sodui