230 likes | 412 Views
PEDRO ALBERTO ARIAS QUINTERO. Shell scrip. PROGRAMACIÓN DE SHELL SCRIPTS EN LINUX.
E N D
PEDRO ALBERTO ARIAS QUINTERO Shell scrip
PROGRAMACIÓN DE SHELL SCRIPTS EN LINUX El shell es un intérprete de órdenes, los intérpretes de órdenes de Linux son auténticos lenguajes de programación. Como tales, incorporan sentencias de control de flujo, sentencias de asignación, funciones, etc.
PROGRAMACIÓN DE SHELL SCRIPTS EN LINUX Los programas de shell no necesitan ser compilados como ocurre en otros lenguajes. En este caso, el propio shell los ejecuta línea a línea. A estos programas se les conoce con el nombre de shell scripts y son los equivalentes a los archivos por lotes de otros sistemas operativos. De Pelos
PASOS A SEGUIR: • Crear un archivo de texto con un editor (vi, emacs, etc.). Este archivo contendrá las órdenes que el shell va a ir interpretando y ejecutando. • Asignar permisos de ejecución al archivo creado, utilizando la orden chmod. • Ejecutar el script generado pasándole los parámetros
RECOMENDACIONES: • La primera línea de cada script debe contener: #!/bin/bash • Una línea de comentarios debe comenzar con el carácter # . Estos comentarios no se verán en pantalla cuando se ejecute el script. • Para mostrar comentarios que luego veremos por pantalla, se utilizará el comando echo
ALGUNAS VARIABLES ESPECIALES DEL SHELL • $# Número de parámetros que han pasado a la shell. • $*Un argumento que contiene todos los parámetros que se han pasado ($1, $2...) menos el $0. • $? Número donde se almacena el código de error del último comando que se ha ejecutado. • $$ Número de proceso actual (PID) • $! Último número de proceso ejecutado.
Ejemplo de una Shell scrip • #!/bin/bash • #script que multiplica dos variables leídas desde teclado • echo “Multiplicación de dos variables” • echo “-------------------------------“ • echo –n “Introduce la primera variable:“ • read var1 • echo –n “Introduce la segunda variable:“ • read var2 • resultado=`expr $var1 \* $var2` • echo El resultado de la multiplicación es =$resultado
Variables • En el shell se pueden definir variables y por tanto dentro de los scripts también. Aquí no hay declaración de tipos pero sí que podemos definir variables que contienen números, cadenas, booleanos e incluso arrays. • Para declarar una variable basta con hacer: • VARIABLE=valor • La podemos exportar para que se convierta en una variable global. • export VARIABLE • A partir de que se crea la variable ya podemos acceder a ella a través de su nombre con el símbolo del dólar por delante. • echo $VARIABLE • Este es un ejemplo de uso de variables:
Variables • Como asignar valores a variables • Var1=666 • MI_NOMBRE=“Pedro" • NOMBRES=“Pedro Lucia EstellaRoberto Juan" • BOOLEANO=true • Como invoco Variables • echo "Echemos un ojo a las variables " • echo "Un número: ${una_variable}" • echo "Un nombre ${MI_NOMBRE}" • echo "Un grupo de nombres: ${NOMBRES}“ • # Variables de entorno • echo "Mi directorio actual: ${PWD} y mi usuario ${UID}"
Operaciones Ya que tenemos variables, que mejor que poder operar con ellas de alguna forma, Al igual que en cualquier otro lenguaje de programación disponemos de operadores aritméticos y lógicos, aunque su uso no es tan simple.
Ejemplo uso de operaciones #!/bin/bash # , +, *, /, %, **, variable++ # == : igualdad # != : desigualdad # Pruebas VALOR1=23 VALOR2=45 # Para las operaciones puede usarse expr o [] RESULTADO=`expr ${VALOR1} + ${VALOR2}` echo "Resultado: ${RESULTADO}" RESULTADO=`expr ${VALOR1} + ${VALOR2} + 3` echo "Resultado: ${RESULTADO}"
Condicionales En el shell podemos crear las habituales estructuras condicionales if o if-else. Esta sería la forma de if: if condición; then operaciones fi • ó if condición then operaciones fi
Forma de el if-else y if-elseif...-else if condición then operaciones else operaciones fi if condición then operaciones elif condición then operaciones else operaciones fi
Case • El case o el switch-case tan típico del lenguaje C también está disponible aquí. case variable in valor1) operaciones_si_variable=valor1 ;; valor2) operaciones_si_variable=varlo2 ;; *) operaciones_en_cualquier_otro_caso esac
Uteraciones También tenemos las clásicas iteraciones for y while además de otras, siempre que necesitemos realizar tareas repetitivas, recorrer arrays o resultados de comandos, etc... for Se puede hacer un for de distintas maneras. El más simple tiene esta forma: forvar in lista do operaciones Done ## un for simple echo "FOR simple: " for i in a b c d e f g h i do echo "letra: $i" done
while Muchas veces nos interesa una iteración sin un número de vueltas fijo, que simplemente dependa de una condición. Eso lo podemos conseguir con el while, cuya forma resumida es esta: while condición do operaciones done
Until Until es similar a while, salvo que su ejecución se detiene de forma inversa. Cuando la condición resulta falsa, termina el bucle. Esta es su forma: until condición do operaciones done
Select Mediante select podemos crear menús de selección de manera muy cómoda. Podemos definir un array con todas las opciones y selectlas mostrará por nosotros. Esta es su forma general: select variable in lista do operaciones done