03 abril 2014

Chuletas de Bash (I)

Si algo no se entiende ya me preguntáis en los comentarios.

Nota cuando escriba un comando en la terminal lo precederé del prompt siguiente ~$, en MSDOS era el famoso C:\> pero evidentemente el promt no forma parte de la orden, no hay que escribirlo.

Todos los scripts de bash empiezan por:
#!/bin/bash
Esto indica donde debe ir a buscar el script el interprete de comandos.

La primera comando que se debe aprender es echo. echo imprime lo que venga detras por la pantalla. es decir si escribimos en la terminal:
~$ echo "ei, ¿cómo va eso?"
Obtendré:
ei, ¿cómo va eso?

Los comentarios en los scripts se ponen con una almohadilla #. Por ejemplo:
# Esto es un comentario

Las variables son como unos contenedores que guardan "cosas". Para expandir la variable (acceder a su contenido) hay que poner el símbolo $ (que no tiene nada que ver con el prompt, casualidades de la vida). por ejemplo:
a=1 --> guarda el valor 1 en la variable a.
b=2 --> ídem con el valor 2 en la variable b.
echo "La variable a vale:" $a --> nos devuelve La variable a vale: 1
c=$a+$b --> No nos devuelve 3 nos devuelve 1+2. Luego veremos por qué.

Vamos a hacer el primer script. Lo vamos a llamar script01.sh:
#!/bin/bash
a=1
echo "a vale" $a

Guardamos. Si ahora ejecutamos el comando:
~$ ls -l 
veremos algo como:
-rw-r--r-- 1 user01 groupA 1 35 Apr 3 11:57 script01.sh
Vamos a fijarnos en la información por partes -rw-r--r-- ,son 10 caracteres, del primero nos vamos a olvidar de momento. los 3 (rw-)siguientes corresponden al usuario y significa que el usuario que ha creado el archivo (user01, en nuestro caso) tiene ciertos permisos el primero es la r de read (lectura), el segundo es w de write escritura, el tercero es un guión que significa que no tiene permiso para ejecutarlo. Los tres siguientes digitos corresponden al grupo que solo tiene permiso de lectura y los tres últimos son para todo el resto de usuarios.

Como nosotros queremos ejecutar el scrip debemos añadir el permiso de ejecución. Lo haremos mediante el comando chmod (que deberemos ejecutar con permisos de administrador, así que ira precedido por sudo), con el mode u+x esto quiere decir algo como "usuario añadimos ejecucion" :
~$ sudo chmod u+x script01.sh

Si ahora ejecutamos el comando:
~$ ls -l 
veremos algo como:
-rwxr--r-- 1 user01 groupA 1 35 Apr 3 11:57 script01.sh

Ahora ya podemos ejecutar el script:
~$ ./script.sh

Obtendremos:
a vale: 1

Vaya, me ha quedado una entrada algo más larga de lo que quería la próxima será mas condensada.  y presupondrá ciertos conocimientos, si alguien no sabe alguna cosa ya dejará algún comentario.