SHELL – SCRIPT INTRODUCCIÓN. Un script de shell no es más que un archivo de texto que contiene una serie de comandos del sistema Linux, además de los comandos que forman parte del shell con los que podemos crear estructuras que facilitan la programación de scripts complejos. Las estructuras básicas de un programa son las de repetición y las condicionales, es decir:
Estructuras repetitivas: Se realiza una acción un cierto número de veces, o mientras dure una condición. Ej. 1: Mientras existan manzanas; Pelarlas. Ej. 2: Desde i=1 hasta i=7 Escribir dia_semana(i). acción en base a una Estructuras alternativas o condicionales: Se ejecutará una acción condición cierta. Ej. 1: Si manzana está pelada, entonces entonces Comerla Caso contrario Pelarlas. Fin.
Variables: Es aquel elemento que tiene un nombre y que es capaz de guardar un valor ya sea en forma de números, caracteres, e incluso arreglos (vectores). Ej. 1: num=4 Ej. 2: nombre=Pedro Para poder acceder al valor de la variable, se ha de colocar un signo “$” delante del nombre de la variable. Ej. 1: echo “el numero ingresado es: $num $num “ Ej. 2: echo “su “su nombre es: $nombre”
Variables de entorno: Es un valor dinámico cargado en la memoria, que puede ser utilizado por varios procesos que funcionan simultáneamente. En sistemas UNIX/Linux, las variables del entorno están precedidas por el carácter "$". Debido a la variedad en los sistemas UNIX (particularmente a las diferentes distribuciones Linux), para que se muestre el valor de una variable de entorno existen algunas alternativas, pero en CentOS sólo se debe escribir el comando:
echo $VARIABLE
NMZ 2013
Algunas de las variables variab les más comunes son: $HOME
Muestra la ruta de acceso al directorio actual del usuario.
$HOST
Muestra el nombre del equipo.
$PATH
Muestra una lista de rutas de acceso a los directorios que contienen archivos ejecutables, separadas por punto y coma.
$PRINTER Contiene el nombre d e la impresora predeterminada. $SHELL
Indica la ruta del intérprete de d e comandos utilizado.
$USER
Muestra la identificación del usuario actual.
Operadores Operadores matemátic matemáticos: os: Para realizar operaciones matemáticas, contamos con los siguientes operadores:
OPERADOR + * /
SIGNIFICADO Suma Resta Multiplicación División
Operadores relacionales: Para poder comparar dos valores, ya sean numéricos o caracteres, contamos con los siguientes operadores:
NUMERICOS -lt -eq -gt -le -ge -ne
CARACTERES < = > <= >= !=
Operadores lógicos: Corresponden a las tres formas de relación utilizadas para relacionar conceptos. En programación, se utilizan para combinar valores de verdad y obtener nuevos valores que determinan el flujo de control de un algoritmo o programa. Estos operadores son: AND &&, OR II, NOT !
Argu Ar gum m entos ent os:: Sirven para pasarle a un programa o una función, valores desde la línea de comandos. Sólo se pueden pasar 9 argumentos. Entonces, al ejecutar el script, deberemos pasar los argumentos en la misma línea, y en nuestra shell serán recibidos como $1, $2…. $9, dependiendo de la cantidad de argumentos que necesite ingresar y el número indica la posición de la cual recibirá la información de la línea de comandos.
Ej.: /pro m 4 5 6 En esta línea de comandos, se ejecutará una shell que calcule el promedio de tres notas, las cuales fueron ingresadas inmediatamente.
NMZ 2013
Estructura if: Como ya se había adelantado, esta es una estructura que nos permite realizar una acción dependiendo de una condición verdadera. A continuación se presentará tres tr es formas de utilizar este tipo de estructura.
If simple. if [ condicion ]; then Realice acción fi
Estruct ura if/else. if/else. if [ condicion ]; then //si se cumple esta condición, entonces entonces Realice acción else //en caso contrario Realice acción fi
Estruct ura if/else if /else. if [ condición ]; then //si se cumple esta condición, entonces Realice acción elif [ condición ] ; then //en caso contrario, si se cumple esta condición Realice acción else //en caso contrario Realice acción fi
Estructura while/do. Permite realizar una acción varias veces hasta que se cumpla una condición de término. while [ condición ]; do Realice una acción Defina la condición de término a evaluar done Para poder ejecutar los archivos de texto que contienen un shell script, se les dará permiso de ejecución: chmod 750 archivo
Y luego se le llamará de la forma siguiente: ./nombre
NMZ 2013
EJEMPLOS 1.- Shell que calcula promedio de tres notas. clear suma=$[$1+$2+$3] prom=$[$suma/3] echo “su promedio es: $prom” Para ejecutar: ./nombre nota1 nota2 nota3 2.- Shell que calcula promedio de n notas. clear cont=1 suma=0 read –p “INGRESE CANTIDAD DE NOTAS: “ n while [ $cont –le $n ]; do read –p “ Ingrese nota $cont: “ nota suma=$[$suma+$nota] cont=[$cont+1] done prom=$[$suma/$n] echo “su promedio es: $prom” Para ejecutar: ./ ./nombr nombr e 3.- Shell que calcula promedio de n notas, e indica indica si el alumno aprobó. clear cont=1 suma=0 read –p “INGRESE CANTIDAD DE NOTAS: “ n while [ $cont –le $n ]; do read –p “ Ingrese nota $cont: “ nota suma=$[$suma+$nota] cont=[$cont+1] done prom=$[$suma/$n] if test $prom -lt 4 ; then echo “USTED HA REPROBADO CON NOTA: $prom” else echo “USTED APROBO CON NOTA: $prom” fi Para ejecutar: ./ ./nombr nombr e
NMZ 2013