34
Introducción a Shell Script Prof. Pablo Macón http://pablomacon.wix.com/home/ [email protected]

Introducción a shell script

Embed Size (px)

Citation preview

Page 1: Introducción a shell script

Introducción aShell Script

Prof. Pablo Macónhttp://pablomacon.wix.com/home/

[email protected]

Page 2: Introducción a shell script

Introducción a Shell Scripting

La idea es combinar secuencias de comandos de Linux para realizar determinadas tareas.

Con shell scripts podremos definir variables y asignarles valores o permitir que un usuario inserte valores de forma interactiva.

Page 3: Introducción a shell script

Introducción a Shell Scripting

En este lenguaje de programación disponemos de bucles y estructuras de control para realizar operaciones aritméticas o de comparación.

También podremos tener varios shell scripts ejecutándose al mismo tiempo.

Page 4: Introducción a shell script

Variables

Son porciones de memoria

Asociadas a un nombre simbólico

Pueden tener un valor o contener información

Este valor puede ser cambiado en cualquier momento

Page 5: Introducción a shell script

Variables

En Linux, por defecto, todas las variables son cadenas de caracteres, no hay tipos como int, char, long...

Si las queremos usar en una operación aritmética vamos a tener que indicarle al sistema lo que queremos hacer con un comando especial

Page 6: Introducción a shell script

Variables

Declarar una variable:nombre_Variable=valor

(sin espacios a ambos lados del signo igual) var1=holavar2=mundo

Page 7: Introducción a shell script

Variables

Declarar una variable:También podemos asignar una cadena con varias palabras, pero para eso tenemos que ponerlas entre comillas doblesvar3=”hola mundo”

Page 8: Introducción a shell script

Variables

Declarar una variable:Podemos poner también las secuencias de escapevar4=”hola\nmundo”

Page 9: Introducción a shell script

Variables

Por último podemos poner el resultado de un comando en una variable, con las comillas invertidas:

var6=`ls /bin`

El sistema ejecuta el comando que está entre comillas y el resultado se pone íntegro dentro de la variable, sin mostrarlo en la pantallas

Page 10: Introducción a shell script

Comando echo

El valor que está guardado en las variables puede ser utilizado en cualquier momento, ya sea dentro de un script como fuera de él

Hay que resaltar y recordar que cualquier comando que podamos utilizar dentro de un script va a poder ser utilizado fuera, en la línea de comandos que usamos

Page 11: Introducción a shell script

Comando echo

Uno de los muchos usos que vamos a hacer de las variables va a ser mostrarlas en pantalla. Ya sea para dar un saludo al usuario que está utilizando el sistema, como para verificar si los datos ingresados son correctos.

Page 12: Introducción a shell script

Comando echo

El comando que nos va a permitir ver el contenido de las variables en la pantalla es el comando echo.

Este comando desplegará en la salida estándar cualquier elemento o cadena de caracteres que le indiquemos como parámetro

Page 13: Introducción a shell script

Comando echo

La sintaxis de este comando es:

echo [-opciones] [cadena con o sin formato]

echo “Mi nombre es Fulano de tal y nací el 30 de febrero de 1995”

mostrará en la salida estándar (pantalla) la cadena que está entre comillas

Page 14: Introducción a shell script

Comando echo

Para mostrar el contenido (valor) de cualquier variable (cualquiera haya sido el método mediante el cual la definimos), es necesario que el nombre de la variable esté precedida por el signo $ (pesos)

echo $miVariable

mostrará el valor de miVariable en la salida estándar

Page 15: Introducción a shell script

Comando echo

echo permite también formatear la salida, utilizando la opción -e, podemos mostrar cadenas con columnas, o dejar líneas en blanco, etc.

No olvidar nunca poner la opción -e, de lo contrario, el efecto deseado no se va a mostrar

Page 16: Introducción a shell script

Comando echo

Page 17: Introducción a shell script

Comando echo

Probemos:echo -e “hola \amundo”echo -e “hola \bmundo”echo -e “hola \cmundo”echo -e “hola \nmundo”echo -e “hola \tmundo”

Page 18: Introducción a shell script

Comando echo

echo permite también formatear la salida, utilizando la opción -e, podemos mostrar cadenas con columnas, o dejar líneas en blanco, etc.

No olvidar nunca poner la opción -e, de lo contrario, el efecto deseado no se va a mostrar

Page 19: Introducción a shell script

Comando read

De cualquier modo, aún no hemos interactuado con el usuario. Una manera para lograr que el usuario pueda participar con nuestro programa la vamos poder hacer con el comando read. Este comando permite que el valor de una variable sea tomado desde la consola, siendo ingresado por el usuario a través de la entrada estándar (teclado)

Page 20: Introducción a shell script

La sintaxis es:

read [-opciones] [Cadena] variable

read miVariable

Esperará a que el usuario ingrese un valor, una vez que se ingrese <intro> , aquello que haya sido ingresado se ⤶guardará en la variable de nombre miVariable

Comando read

Page 21: Introducción a shell script

Este comando requiere que el usuario sepa exactamente que es lo que se espera de él.

No podemos pensar que el usuario adivinará que ante una pantalla negra, tenga que ingresar un valor de un tipo determinado.

Comando read

Page 22: Introducción a shell script

Es por ello que normalmente vamos a mostrarle algún tipo de mensaje en la pantalla previo al uso del comando read, indicándole al usuario qué es lo que tiene que ingresar.

El par echo/read va a ser uno de los más utilizados en cualquier shell script que hagamos.

Comando read

Page 23: Introducción a shell script

Ejemplo: Deseamos que el usuario ingrese su nombre, apellido y edad para guardarlos en tres variables.

echo -e “Ingrese su apellido: \c”; read ape

echo -e “Ingrese su nombre: \c”; read nom

echo “Ingrese su edad: ”; read edad

Comando read

Page 24: Introducción a shell script

Ejemplo: Deseamos que el usuario ingrese su nombre, apellido y edad para guardarlos en tres variables.

¿qué diferencia se puede notar entre el uso de echo con la opción -e \c y la que no usan la secuencia de escape?

Comando read

Page 25: Introducción a shell script

Ejemplo: Deseamos que el usuario ingrese su nombre, apellido y edad para guardarlos en tres variables.

Luego, en otra parte del programa vamos a querer mostrar los valores ingresados:

echo “Ud. es $nom $ape y su edad es $edad”

Comando read

Page 26: Introducción a shell script

Nota aparte: Los nombres que le pongamos a las variables tienen que tener algún tipo de relación con el valor o el uso que queramos darle.

No podemos tener un script lleno de variables que se llamen var1, var2, … var26 cuando la primera guarda una cédula, la segunda una dirección y la tercera el nombre de un libro

Comando read

Page 27: Introducción a shell script

En esta clase vamos a utilizar el editor nano, en las siguientes vamos a utilizar el editor vi.

En la consola, escribamos nano primerScript.sh, es decir, el nombre del comando seguido del nombre de nuestro programa.

Nuestro primer script

Page 28: Introducción a shell script

Por convención, todos los scripts suelen terminar con la secuencia .sh aunque debemos recordar que en Linux la extensión de un archivo no tiene un valor más allá de permitir reconocer su tipo.

Nuestro primer script

Page 29: Introducción a shell script

La primera línea de todos nuestros scripts será la siguiente:

#! /bin/bash

Esta línea le permitirá al shell reconocer que nuestros scripts deben correrse utilizando la shell bash. Si bien puede usarse alguna otra shell, solo con bash vamos a estar 100% seguros de que funcionará como queremos.

Nuestro primer script

Page 30: Introducción a shell script

A partir de esa línea, las siguientes líneas serán las que escribimos hoy más temprano:

echo -e “Ingrese su apellido: \c”; read apeecho -e “Ingrese su nombre: \c”; read nomecho -e “Ingrese su edad: \c”; read edadecho “Ud. es $nom $ape y su edad es $edad”

Nuestro primer script

Page 31: Introducción a shell script

Una vez que finalizamos de editar nuestro script, debemos guardar los cambios con la combinación de teclas <ctrl>+<o>, le ponemos el nombre deseado (el que ya tenía).

Para salir del editor usamos la combinación <ctrl>+<x>

Nuestro primer script

Page 32: Introducción a shell script

Para ejecutar nuestros scripts vamos a utilizar el comando ./

./primerScript.sh

Permiso denegado ¿por qué obtenemos esta respuesta?

Nuestro primer script

Page 33: Introducción a shell script

Porque los programas deben tener permiso de ejecución. De otro modo, son archivos comunes que no tienen permiso para ejecutarse.

Para darle permiso debemos utilizar el comando chmod.

Para simplificar usaremos

chmod 777 primerScript.sh

Nuestro primer script

Page 34: Introducción a shell script

Ahora sí, podemos ejecutar el script que escribimos con el comando

./primerScript.sh

Nuestro primer script