Está en la página 1de 50

UNIVERSIDADE CUENCA

243x159 1

Desarrollo de scripts
Orientados a la administracin de sistemas

585x395 3

Parte 1

Entrada/Salida

UNIVERSIDAD DE CUENCA

Parmetros y variables

Los parmetros en un script son apuntados de la siguiente manera $1 primer parmetro $2 segundo parmetro $n parmetro n

Script de ejemplo:

UNIVERSIDAD DE CUENCA

Parmetros especiales

$* y $@ $# $0 $$ $?

expanden todos los parmetros enviados muestra el valor de cuantos parmetros fueron enviados contiene el path hacia el script que se est ejecutando contiene el PID Contiene el cdigo de salida del ltimo comando

UNIVERSIDAD DE CUENCA

Printf

Secuencias de escape:

Ejemplo:

UNIVERSIDAD DE CUENCA

Printf

UNIVERSIDAD DE CUENCA

Printf

Con especificacin de ancho de columna:

UNIVERSIDAD DE CUENCA

Printf

Imprimir a una variable

UNIVERSIDAD DE CUENCA

Redireccin

Asigna contenido a un archivo Concatena contenido

Redireccin de errores:

/dev/null

UNIVERSIDAD DE CUENCA

Leyendo entradas

UNIVERSIDAD DE CUENCA

Sustitucin de comandos

UNIVERSIDAD DE CUENCA

585x395 3

Parte 2

Estructuras de control

UNIVERSIDAD DE CUENCA

Estatus de salida

UNIVERSIDAD DE CUENCA

Probar expresiones

Probar archivos:

Probar nmeros:

UNIVERSIDAD DE CUENCA

Probar expresiones

Probar strings:

Operadores z y n :

UNIVERSIDAD DE CUENCA

Probar expresiones

Comparaciones de strings:

AND (-a) y OR (-o)

UNIVERSIDAD DE CUENCA

Evaluar expresiones: [[ ... ]]

Usado de forma similar al comando test, misma funcionalidad pero tiene algunas mejoras Uso de expresiones regulares:

UNIVERSIDAD DE CUENCA

Evaluar expresiones matemticas: (( ... ))

UNIVERSIDAD DE CUENCA

Ejercicio

Crear un script que lea 3 nmeros, los liste encolumnados, calcule su sumatoria y muestre si est en alguno de los siguientes rangos 0-10 11-20 21-30 Mayor a 30

UNIVERSIDAD DE CUENCA

Ejecucin condicional - if

Sintaxis:

Ejemplos:

UNIVERSIDAD DE CUENCA

Ejecucin condicional - if

Ejemplo:

UNIVERSIDAD DE CUENCA

Ejecucin condicional - if

Ejemplo:

UNIVERSIDAD DE CUENCA

case

Sintaxis:

Ejemplo: verificar si un string est contenido en otro string

UNIVERSIDAD DE CUENCA

Case

Ejemplo: verificar si un entero es vlido

Ejemplo: verificar nmero de parmetros correctos:

UNIVERSIDAD DE CUENCA

while

Sintaxis:

Ejemplo: mostrar numeros

UNIVERSIDAD DE CUENCA

while

Ejemplo: leer lnea por lnea un archivo

UNIVERSIDAD DE CUENCA

for

Ejemplo: asignar valores de entre un grupo de valores

Ejemplo: ejecutar bucles definidos

UNIVERSIDAD DE CUENCA

break

Un bucle puede ser terminado mediante la instruccin break Ejemplo: Ejemplo

UNIVERSIDAD DE CUENCA

585x395 3

Parte 3

Parseo y expansin

UNIVERSIDAD DE CUENCA

Brace expansion

El comando: echo {a,b,c} Muestra la salida: abc

El comando echo {a,b,c}{e,f,g} Muestra la salida: ae af ag be bf bg ce cf cg El comando: echo {1..4}{5..7} Muestra la salida: 15 16 17 25 26 27 35 36 37 45 46 47

UNIVERSIDAD DE CUENCA

Brace expansion

El comando: printf "%s:" pre{d,l}ate Muestra la salida: predate:prelate: El comando: echo {{1..3},{a..c}} Muestra la salida: 123abc

UNIVERSIDAD DE CUENCA

Expansin de parmetros y variables

Probar el siguiente script: #!/bin/bash var="valor" echo $var echo ${var} nombre="Juan" apellido="Perez" echo "$nombre_$apellido" "\n" "${nombre}_$apellido" Salida:

UNIVERSIDAD DE CUENCA

Expansin aritmtica

El comando: echo "$(( 1 + 12 ))" "$(( 12 * 13 ))" "$(( 16 / 4 ))" "$(( 6 - 9 )) Muestra la siguiente salida: 13 156 4 -3 El comando: echo "$(( 3 + 4 * 5 ))" "$(( (3 + 4) * 5 )) Muestra la siguiente salida: 23 35 El comando: echo "$(( 13 % 5 )) Muestra la siguiente salida: 3

UNIVERSIDAD DE CUENCA

Operadores aritmticos

UNIVERSIDAD DE CUENCA

Parseo de opciones

Probar el script disponible en el evirtual

UNIVERSIDAD DE CUENCA

Variables del shell

UNIVERSIDAD DE CUENCA

Variables del shell

UNIVERSIDAD DE CUENCA

${var:-default} y ${var-default}: Valores por defecto

${var:-default} chequea si una variable no est asignada o est vaca, si esto sucede la expande al valor por defecto Ejemplo:

Salida:

No se asignan valores a la variable var

UNIVERSIDAD DE CUENCA

${var:-default} y ${var-default}: Valores por defecto

Si el carcter : es quitado u omitido, solo verifica si la variable no ha sido seteada Ejemplo:

Salida:

UNIVERSIDAD DE CUENCA

${var:=default}, ${var=default}: Asignar valores por defecto

${var:=default} se comporta de la misma forma que ${var:-default} excepto que ahora asigna el valor a la variable var Ejemplo:

UNIVERSIDAD DE CUENCA

${var:=default}, ${var=default}: Asignar valores por defecto

Salida:

UNIVERSIDAD DE CUENCA

${var:=default}, ${var=default}: Asignar valores por defecto

${var=default} se comporta de la misma forma que ${var-default} excepto que ahora asigna el valor a la variable var Ejemplo:

UNIVERSIDAD DE CUENCA

${var:=default}, ${var=default}: Asignar valores por defecto

Salida:

UNIVERSIDAD DE CUENCA

${#var}: Tamao del contenido de la variable

Ejemplo:

UNIVERSIDAD DE CUENCA

${var%PATTERN}: Remueve el match desde el final

Ejemplo:

Salida:

UNIVERSIDAD DE CUENCA

${var%%PATTERN}: Remueve un match ms largo desde el final

Ejemplo:

Salida:

UNIVERSIDAD DE CUENCA

${var#PATTERN}: remueve el match ms corto desde el principio

Ejemplo:

Salida:

UNIVERSIDAD DE CUENCA

${var##PATTERN}: Remueve el match mas largo desde el principio

Ejemplo:

Salida:

UNIVERSIDAD DE CUENCA

${var//PATTERN/STRING}: Remplazar patrones con strings

Reemplaza todas las coincidencias del PATTERN con un STRING Ejemplo:

Salida:

UNIVERSIDAD DE CUENCA

${var:OFFSET:LENGTH}: retorna un substring de var

Ejemplo:

Salida:

UNIVERSIDAD DE CUENCA