2. 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.
3. 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.
4. 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
5. 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
7. Variables
Declarar una variable:
También podemos asignar una cadena con varias
palabras, pero para eso tenemos que ponerlas entre
comillas dobles
var3=”hola mundo”
9. 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
10. 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
11. 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.
12. 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
13. 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
14. 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
15. 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
18. 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
19. 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)
20. 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
21. 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
22. 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
23. 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
24. 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
25. 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
26. 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
27. 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
28. 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
29. 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
30. 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 ape
echo -e “Ingrese su nombre: c”; read nom
echo -e “Ingrese su edad: c”; read edad
echo “Ud. es $nom $ape y su edad es $edad”
Nuestro primer script
31. 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
32. Para ejecutar nuestros scripts vamos a utilizar el
comando ./
./primerScript.sh
Permiso denegado ¿por qué obtenemos esta respuesta?
Nuestro primer script
33. 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
34. Ahora sí, podemos ejecutar el script que escribimos con
el comando
./primerScript.sh
Nuestro primer script