Shell-Script-I

Curso de Linux 8/60 | Shell Script Básico I

En nuestra octava clase del curso de Linux vamos a ver el Shell Script, el Shell Script lo vamos a ver en 4 clases 2 básicas y 2 avanzadas, en nuestra primera clase de Shell Script básico vamos a ver:

  1. Que es un Shell Script
  2. Las variables.
  3. El entorno de variables.
  4. Como se configuran las variables para nuestros Script de Shell.
  5. Y las estructuras básicas.

Les adelanto que son estructuras básicas son las mismas estructuras que se usan en la programación, que son la condicional if, el case, el ciclo for, el ciclo while y el ciclo until. Con estas herramientas vamos a comenzar la parte básica del Shell Script.

¿Que es un  Shell Script?

Antes de definir que es un Shell Script debemos entender que es una Shell. Recordemos que Linux posee un corazón al que llamamos el Kernel de Linux este corazón por decirlo así esta envuelto por una concha o en ingles Shell, la Shell de Linux es la que nos permite comunicarnos con el núcleo del sistema y todas sus herramientas, mediante el uso de comandos.

Ahora que sabemos que es una Shell definamos que es un Script. Normalmente un script en Linux es un archivo en texto plano que siempre en su encabezado debe iniciar por #! seguido del programa a usar para interpretar el script, por ejemplo:

#!/bin/bash para script de bash
#!/bin/sh para script de shell
#!/usr/bin/perl para script de perl

En resumidas cuentas un shell script es un archivo de texto plano que incia con #! y estos Scripts suelen contener una secuencia de comandos que se pueden interpretar en la Shell de Linux, pronto se darán cuneta de su potencial.

Las variables

Las variables nos dan la capacidad de poder asignar un contenido X a un nombre, y este nombre ocupara un espacio en la memoria RAM de nuestro ordenador, no se preocupen ya verán lo fácil que es.

Para definir una variable en la Shell de Linux utilizaremos el comando export veamos su sintaxis.

Sintaxis:

export VARIABLE="Contenido"

Ejemplo:

export VARIABLE="Hola Mundo"

Llamada de la variable:

echo $VARIABLE

¿Como crear un Script en Linux?

Para crear un Shell Script debemos iniciar el editor de texto de nuestra preferencia, para este ejemplo utilizaremos el editor pico.

  1. Estando en la Shell de Linux escribimos pico.
  2. Y dentro del editor debemos iniciar con el encabezado propio de una Shell Script en este caso para un script de bash que seria  #!/bin/bash
  3. Ahora escribiremos el primer Script de este curso, en la siguiente linea escribimos echo “Hola mundo”; (no olvidar que al finalizar la linea debemos finalizar con “;”) y guardamos nuestro script con el nombre de script.sh.
  4. Antes de ejecutar el Script necesitamos darle los permisos necesarios con el comando chmod de la siguiente manera chmod u+x script.sh.
  5. Una vez ejecutado vamos a ver que nos imprime el mensaje “hola mundo”.

Argumentos o parámetros posicionales

Dentro de una Shell Script existen lo que se llaman argumentos o parámetros posicionales que son variables reservadas que se definen de la siguiente manera $1, $2 , $3 y equivalen al parametro 1, el parametro 2 y el parámetro 3.

Sabiendo lo de los paramotros posicionales ahora realizaremos un ejemplo utilizando el Script que anteriormente creamos. Entonces vamos a imprimir con echo estos 3 parámetros.

Editamos el script pico script.sh y una linea abajo de “Hola mundo” escribimos:

echo $1
echo $2
echo $3

Guardamos los cambios y salimos del editor de texto.

Una vez en la Shell ejecutamos el Script y le agregamos tres parámetros que serán parámetro1, parámetro2, parámetro3,

./script.sh  parametro1 parametro2 parametro3

Como vemos el shell script nos arroga algo parecido a lo siguiente en la salida:

hola mundo
parametro1
parametro2
parametro3

Recordemos que con echo indicamos que parámetro 1, 2 y 3 se imprimieran y como nosotros en la Shell indicamos script + 3 parámetros entonces  obtuvimos como salida el hola mundo y los tres parametros.

Estructura IF

La estructura condicional en un shell script se define por IF (en español Si o Cuando) y su funcionamiento es muy sencilla. If evalúa si la condición se cumple o no se cumple, si es verdadera ejecuta un código, si es falsa, ejecuta otro código o continúa con la ejecución del shell script.

realizamos un ejemplo practico, volvamos a editar nuestra script:

pico script.sh

y ahora modificamos el script de manera que quede de la siguiente manera:

#!/bin/bash
if [ $1 = 1 ];
then
echo "el valor de la variable es (1)"
fi

Importante entre corchete y corchete del if hay que dejar un espacio despues de abrir el corchete y dejar otro espacio antes de cerrar con corchete por ultimo no olvidar nunca el “;”.

Vamos a ver otra cosa dentro de la estructura if hay un else osea de lo contrario, que pasa si no se cumple la condición entonces cuando esto pasa esta la estructura else que esta anidada dentro de if por asi decirlo y vamos a colocar otro mensaje en este caso es () error, el valor de la variable no es uno y ahí cerramos con el fi, grabamos y ejecutamos

if [ $1 = 1 ];
then
echo "el valor de la variable es (1)"
else
echo "error, el valor de la variable no es uno”;
fi

En este ejemplo donde al script le damos como parametro 1  nos arrojara el texto “el valor de la variable es (1)” y en caso contrario si le damos un valor que no sea 1 nos arrojara el texto “error, el valor de la variable no es uno

Estructura del CASE

Bueno ahora vamos al case, el case también es una condicional pero se da mas en una estructura de menú, este se abre con case seguido de la variable + in y en la siguiente linea siempre tabulando una vez se coloca la condicional, que en el ejemplo de abajo, la condicional en el primer caso es 1, en la siguiente fila y esta vez tabulando 2 veces se escribe la acción que se realizara en ese caso, y por ultimo cerramos el caso tabulando una vez y escribiendo ;; . una vez terminado el primer caso ya podemos crear cuantos casos necesitemos y al finalizar el ultimo caso cerramos el case con esac.

Vamos a ver un ejemplo practico.

case $1 in
········1)
················echo “el valor es 1”
········;;
········2)
················echo “el valor es 2”
········;;
········*)
················echo “el valor es otro número”
········;;
esac

Entonces cuando ejecutamos nuestro script segun el parametro que le demos nos arrojara diferentes resultados como en la siguiente imagen.

Case en Shell Script

Como podemos observar nuestro script con la estructura case funciona a la perfección.

Los bucles o los ciclos el FOR

Ahora vamos a ver los bucles o los ciclos del for, for es un ciclo que nos permite hacer repetición con base en un conteo predeterminado.

Para escribir nuestra estructura de FOR, debemos comenzar por for seguido de la variable que va a hacer de contador, por ejemplo i, luego in y el conteo que deseamos realizar, vamos a poner un ejemplo de 1 a 10 eso lo vamos a colocar entre comillas simples entonces quedaria de esta manera ‘seg 1 10’ luego vamos a colocar ; y en una linea más abajo do , en español hacer, y otra linea más abajo vamos a hacer un echo de la variable contador que es la variable i, quedaria algo así echo $i cerramos nuestro ciclo for con done, lo grabamos para luego ejecutarlo en la Shell.

Vamos al ejemplo practico

dentro del editor de nuestra preferencia creamos la estructura del for

for i in ‘seg 1 10’;
do
........echo $i
done

Lo ejecutamos y ¿que vamos a ver? Vamos a ver que el hiso el ciclo del 1 al 10

1
2
3
4
5
6
7
8
9
10

Ahora editamos el script y vamos a pasarle como parámetro 2 variables una de inicio y otra de finalización del conteo que serán el $1 y $2. Cuando ejecutamos nuestro Shell Script colocamos 1 10 y va a funcionar de la misma forma porque lo único que hicimos fue remplazar las variables.

for i in ‘seg $1 $2’;
do
........echo $i
done

Ahora si le colocamos de como primer parámetro 10 y segundo parámetro 20 nos va a contar de 10 a 20, si le colocamos primer parámetro 1 y segundo parámetro 100 nos va a contar del 1 hasta 100, si le colocamos como primer parámetro 1 y segundo parámetro 100000 pues el va a ir del 1 hasta 100000 se va a demorar un poco pero lo va a hacer.

El ciclo WHILE

Ahora vamos a ver el ciclo WHILE. El ciclo while se utiliza mucho para los menús ya que el sigue operando mientras se cumple la condición, también puede funcionar como el for pero aquí vamos a ver que uso le daremos, entonces vamos a establecer una variable i que es igual a 5, una variable x que es igual a 0 la palabra para iniciar la estructura es while acuérdense que corchetes separados por espacio a lado y lado y le vamos a decir que x es menor que i entonces mientras x sea menor que i el se va a cumplir si es mayor que i se rompe el ciclo, vamos a colocar ; y una linea abajo do y luego echo “mayor que 5 para salir”. Entonces cuando sea mayor que 5 el ciclo se va a romper, mientras sea menor que 5 el ciclo se va a cumplir, colocamos la función read, read nos va a leer la variable x que es donde vamos a introducir el número para seguir el ciclo o romper el ciclo.

i=5
x=0
..
while [ $x -1e $i ];
do
........echo "Mayor que 5 para salir"
read x
..
done

Ejecutamos el script y si colocamos 1, 2, 3 el ciclo no se rompe porque no estamos colocando un numero mayor que 5 pero si colocamos 6 se rompe porque el ciclo se mantiene mientras sea menor que 5.

El UNTIL

El UNTIL funciona al contrario, el until mantiene el ciclo mientras sea mayor que i, en el ejemplo de abajo el ciclo se va a cumplir solamente si es mayor que 5. Osea el ciclo until funciona igual que el while pero al contrario.

i=5
x=0
..
until [ $x -le $i ];
do
..
........echo "Menor que 5 para salir”
read x
done

Ejecutamos el script si colocamos un número mayor que 5 nuestro Script va a seguir haciendo el ciclo pero si colocamos 5 entonces se va a romper.

Bueno esto es todo por esta clase haciendo un resumen vimos el ciclo for, el ciclo while, el ciclo until, vimos las condicionales if, las condicionales case y también vimos el manejo de las variables y la configuración de las mismas también vimos como invocarlas desde las líneas de comando pasándolas como parámetros.

En la próxima clase vamos a ver la utilización practica de todos estos ejemplos en Script que hagan funciones, que tomen información del sistema operativo para poder llevar acabo algún tipo de función que nos sirvan en nuestra diaria utilización de nuestro sistema operativo Linux.

No se olviden que en el pie de pagina encontraran el formulario para subscribirse, y así no perderse ningun capitulo del curso de Linux, ¡los espero en la próxima clase!

Sobre Fernando Alberto Velasquez Aguilera

Comentar

Su dirección de correo electrónico no será publicada.Los campos necesarios están marcados *

*

x

Check Also

TinkerBoard Asus

Tinkerboard es la nueva Raspberry de Asus

Asus a puesto a disposición la nueva TinkerBoard un dispositivo que llama la atención por ...