Upload
mihai-mitza-mihai
View
92
Download
8
Embed Size (px)
Citation preview
Asir II
Scripts BASH ejercicios
Ejercicios de Scripts
A tener en cuenta:
LESS (nombre fichero):Nos muestra el contenido de un fichero en su totalidad
MORE (nombre fichero):Nos muestra el contenido del fichero paginándolo
Para salir de estos comandos WQ
Less (fichero) | head –n 5 nos muestra las primeras 5 lineasLess (fichero)| tail –n 5 nos muestra las ultimas 5 lineasLess (fichero) |grep (palabra) muestra las líneas donde se encuentra esta palabra
Para utilizar número utilizamos:
Para utilizar ficheros:
Para dar permiso de ejecución utilizamos el comando CHMODEjemplo
Chmod u +x expresión-logica.sh
U= permiso a usuario+= agregarX= ejecutable
-eq =
-me ¡=-lt <
-gt >
-le <=
-ge >=
-a Si existe
-d Existe es un directorio
-f Existe es un fichero
-r Es de lectura
-w Es de escritura
-x Es ejecutable
ADMINISTRACION DE SISTEMAS INFORMATICOS EN RED
SERVICIOS DE RED E INTERNET
EMPRESA E INICIATIVA EMPRENDEDORA
SISTEMA GESTOR DE BASES DE DATOS
SEGURIDAD Y ALTA DISPONIBILIDAD
ADMINISTRACION SISTEMAS OPERATIVOS
SAD: Actividades
WHATSAPP PARA PC
Discurso de Steve Jobs, ceremonia de graduacion Stanford 2005
Scripts BASH ejercicios
Fechas de exámenes
Creación BBDD con PHP. (alta, baja, modificación tablas).
IAW - EJERCICIOS PHP
Páginas
► 2012 (1)
► 2011 (3)
Archivo del blog
Participar en este sitioGoogle Friend Connect
Miembros (2)
¿Ya eres miembro?Iniciar sesión
Sigueme
0Compartir Más Siguiente blog» Crear un blog Acceder
Página 1 de 17Asir II: Scripts BASH ejercicios
31/01/2013http://asir2.blogspot.com.es/p/scripts-bash-ejercicios.html
Así podemos ejecutar el fichero sin utilizar el bash inicial.
CASE se suele utilizar para menus cuando hay varias opciones.
Sintaxis:
Case $variable inValor1)Se ejecuta si variable tiene valor 1;;Valor2)Se ejecuta si variable tiene valor 2;;*)Se ejecuta su variable no tiene ninguno de los valores anteriores
ESAC
Expresiones lógicas
If [Expresion]; ThenRealiza expresión si es verdaderaFI Cierra la estructura
If [Expresion]; Then Realiza expresión si es verdaderaElse Realiza expresión si es falsaFI-n utilizamos para variables si no es nula-z Utilizamos para variables nulo, vacia o no definida
Cuando hay más de dos opciones utilizamos ELIF
If [Expresion]; ThenRealiza expresión si es verdaderaelif [Expresion]; ThenRealiza expresión si es verdaderaelif [Expresion]; Then Realiza expresión si es verdaderaElse Realiza expresión si es falsaFI
-------------------------------------------------------#!/bin/bash#primer programaEcho Hola mundo
Guardamos con extensión .SH - primer-programa.sh
Nos vamos al terminal y ejecutamosbash primer-programa.sh
------------------------------------------------------------#!/bin/bash#Movimiento de fichero de una ruta a otra
Mv /home/asir/ASO/TEMA1/ejercicios/tema1 /home/asir/SRI/TEMA1/DHCP/ejercicios
Echo Contenido de la carpeta ASO/TEMA1/ejercicios/Ls /home/asir/ASO/TEMA1/ejercicios/tema1
Echo Contenido de la carpeta destino /SRI/TEMA1/DHCP/ejerciciosLs /home/asir/SRI/TEMA1/DHCP/ejercicios
Guardamos como movimiento-fichero.shEjecutamos.
------------------------------------------------------------#!bin/bash#Muestra nombre y apellidos por parámetrosEcho Hola $1, tienes $2 años
Página 2 de 17Asir II: Scripts BASH ejercicios
31/01/2013http://asir2.blogspot.com.es/p/scripts-bash-ejercicios.html
Guardamos como parámetros.shDesde terminal ejecutamosBash parámetros.sh Jhon 35
-------------------------------------------------------------Fichero que solicita nombre y edad por pantalla#!bin/bash#Muestra nombre y apellidos por parámetrosEcho “Introduzca su nombre”Read nombreEcho “introduzca su edad”Read edad
Echo “Hola eres” $nombre “ y tienes” $edad “años”
Guardamos como introduce-parametros.shDesde terminal ejecutamosBash inbtroduce-parámetros.sh Jhon 35
Aquí el introduzca su nombre hace un salto de línea para introducir el nombre, si queremos que se haga en la misma línea ponemos -n
Echo –n: Nos deja poner el nombre y la edad en la misma linea
-------------------------------------------------------------#!bin/bash#Muestra nombre y apellidos por parámetrosEcho -n “Introduzca su nombre: ”Read nombreEcho -n “introduzca su edad: ”Read edad
Echo “Hola eres” $nombre “ y tienes” $edad “años”
READ –P: nos muestra todo con una sola línea de comando eliminamos el echo-------------------------------------------------------------#!bin/bash#Muestra nombre y apellidos por variable
read –p “Introduzca su nombre: “ nombreread -p “introduzca su edad: ” edad
Echo “Hola eres” $nombre “ y tienes” $edad “años”
Introducimos nombre y año de nacimiento, que muestre el nombre y la edad.
-------------------------------------------------------------#!bin/bash#Muestra nombre y apellidos por parámetrosActual=2011
Echo Te llamas $1 y tienes $(expr $actual - $2) años.
Ejecutamos parametros1.sh jhon 1976
-------------------------------------------------------------#!bin/bash#Pasando por parámetro, especificamos fichero y donde moverloEcho Movemos el fichero $1 a la carpeta $2Mv $1 $2Echo nos muestra el contenido del ficheroLs $2
---------------------------------------------------------------#!/bind/bash#programa que compara el nombre y nos da mensaje si somo o no
Name=jhonEcho –n “introduce tu nombre: “Read nombre
If [ $nombre = $name ]; thenEcho “Hola, eres” $nombreElseEcho “Hola, Tu no eres” $namefi
Página 3 de 17Asir II: Scripts BASH ejercicios
31/01/2013http://asir2.blogspot.com.es/p/scripts-bash-ejercicios.html
guardamos como parámetros.shEjecutamos bash parámetros.sh
----------------------------------------------------------------Creamos script con parámetros#!/bind/bash#programa que compara el nombre y nos da mensaje si somo o no
Name=jhon
If [ $1 = $name ]; thenEcho “Hola, eres” $1 buenos diasElseEcho “Hola, Tu no eres” $namefi
guardamos como parámetros1.shEjecutamos bash parámetros1.sh jhon
-----------------------------------------------------------------#!/bind/bash#programa que compara el año de nacimiento
Anho=1976Read –p “introduce tu naño de nacimiento: “ anio
If [ $anio -eq $anho ]; thenEcho “Hola, naciste ” $anhoElseEcho “Hola, Tu no naciste ” $anhofi
Guardamos como parámetros2.shEjecutamos bash parámetros2.sh
----------------------------------------------------------#!/bind/bash#pasados 2 valores por parametro, indique cual de lo dos es mayor o si son iguales
read -p "introduce un valor: " num1read -p "Introduce valor a comparar: " num2
if [ $num1 -lt $num2 ]; thenecho $num2 " Es mayor que " $num1
elif [ $num1 -eq $num2 ]; thenecho $num1 " Es igual a " $num2
elseecho $num2 " Es menor que " $num1
fi--------------------------------------------------------#!/bind/bash#Mirar si el directorio pasado por parametro ya existe si es si, que muestre un mensaje. Si es no lo debe crear y decir que lo ha creado
read -p "introduce un directorio: " dir1if [ -a $dir1 ]; thenecho " El directorio existe "ls
elseecho "El directorio no existe"mkdir $dir1echo "Se ha creado el directorio " $dir1lsfi
-----------------------------------------------------#!/bind/bash#Nos pide la edad y nos dice si es mayor de edad o menor
read -p "introduce tu edad: " edadif [ $edad -lt 18 ]; thenecho " Eres menor de edad "
Página 4 de 17Asir II: Scripts BASH ejercicios
31/01/2013http://asir2.blogspot.com.es/p/scripts-bash-ejercicios.html
elif [ $edad -gt 18 ]; thenecho "Eres mayor de edad"
elseecho "Eres mayor de edad"
fi-----------------------------------------------------------#!/bind/bash#Script que mire si el fichero por parametro, existe. si existe mostrar mensaje con el nombre del fichero. Si no existe crearlo y decir que lo ha creado con el nombre quese ha puesto.
if [ -a $1 ]; thenecho "El fichero existe se llama "$1
elsetouch $1echo "Se ha creado el fichero con el nombre "$1fi----------------------------------------------------------#!/bind/bash#Script que mire si el fichero pedido, existe. si existe mostrar mensaje con el nombre del fichero. Si no existe crearlo y decir que lo ha creado con el nombre quese ha puesto.
read -p "Introduzca ruta del fichero: " f1
if [ -a $f1 ]; thenecho "El fichero existe se llama "$f1
elsetouch $f1echo "Se ha creado el fichero con el nombre "$f1fi----------------------------------------------------------
#!/bind/bash#Script que reciba un nombre de fichero, verifique que existe y que es un fichero comun (lectura-escritura) lo convierta en ejecutable para el usuario y el grupo y muestre el estado final de los permisos.
if [ -f $1 ]; thenecho "El parametro introducido es un fichero"ls -l $1
if [ -r $1 ];then echo " Tiene permisos de Lectura"
if [ -w $1 ];then echo "Tiene permisos de escritura " chmod ug+x $1 ls -l $1
else echo "No es un fichero comun" fi
else echo "No es un fichero comun"
fi
elseecho "El fichero no existe "fi
------------------------------------------------------------#!/bind/bash#Script que reciba un nombre de fichero, verifique que existe y que es un fichero comun (lectura-escritura) lo convierta en ejecutable para el usuario y el grupo y muestre el estado final de los permisos.
if [ -f $1 ]; thenecho "El parametro introducido es un fichero"more $1
elif [ -d $1 ]; thencd $1ls
Página 5 de 17Asir II: Scripts BASH ejercicios
31/01/2013http://asir2.blogspot.com.es/p/scripts-bash-ejercicios.html
elseecho " ERROR!!! no es fichero ni directorio "
fi
------------------------------------------------------------
#/!bin/bash#Script que nos muestra un menu para elegir una opcion, y nos da un mensaje despues de la eleccion.
echo "1. Opcion uno"echo "2. Opcion dos"
read -p "introduzca opcion:" op
case $op in1)echo "Ha pulsado opcion 1";;2)echo "Ha pulsado opcion 2";;*)echo "La opcion es incorrecta";;esac---------------------------------------------------------
#/!bin/bash#Script que nos muestra un menu para elegir la operacion a realizar
echo ""echo "Realiza una operacion matematica segun las opciones"echo ""echo "a.Suma"echo "b.Resta"echo "c.Multiplicación"echo "d.Division entera"echo "e.Resto"echo "f.Es un numero par?"
read -p "Seleccione la operacion a realizar y pulse intro: " opread -p "introduzca operando 1:" num1if [ $op != f ]; thenread -p "introduzca operando 2:" num2fi
case $op ina)suma=`expr $num1 + $num2`echo "Ha pulsado opcion a, el resultado de la suma es "$suma;;
b)resta=`expr $num1 - $num2`echo "Ha pulsado opcion b, el resultado de la resta es "$resta;;
c)multiplicacion=`expr $num1 \* $num2`echo "Ha pulsado opcion c, el resultado de la multiplicacion es "$multiplicacion;;
d)division=`expr $num1 / $num2`echo "Ha pulsado opcion d, el resultado de la division es "$division;;
Página 6 de 17Asir II: Scripts BASH ejercicios
31/01/2013http://asir2.blogspot.com.es/p/scripts-bash-ejercicios.html
e)resto=`expr $num1 % $num2`echo "Ha pulsado opcion e, el resto es "$resto;;
f)res=`expr $num1 % 2`if [ $res -eq 0 ]; thenecho " el numero introducido es " $num1 " es par"elseecho " el numero introducido es " $num1 " No es par"fi;;esac
---------------------------------------------------#/!bin/bash
#Script que nos diga al pulsar una tecla, si es letra, numero o caracter especial
read -n 1 teclacase $tecla in[a-z,A-Z]) echo "ha introducido una letra";;[0-9]) echo "Ha introducido un numero";;*) echo "Ha introducido un caracter especial";;esac------------------------------------------------------
#!/bin/bash#realizar un scrip que reciba varios parametros y nos diga cuantos de esos parametros son de directorios y cuantos son archivos. $# contador que indica cuantos parametros se pasan.
cont=0contf=0
for var in $*; do if [ -d $var ]; then cont=`expr $cont + 1` elif [ -f $var ]; then contf=`expr $contf + 1` else echo "$var no es fichero ni directorio" fidoneecho "Ha introducido $cont directorios y $contf ficheros."echo "Se han introducido $# parametros"
----------------------# Mostramos menu, con productos para vender, luego nos pide que introduzcamos la opcion. luego mensaje que indica que introduzca moneda. Si ponemos precio exacto nos da mensaje, "Gracias buen provecho", si ponemos menos, nos diga falta.Si poner mas valor, nos indique el cambio con mensaje.
echo """"echo "Bienvenido a la tienda On-line - CEPAL"echo ""echo "1. Refresco 1 euro"echo "2. Sandiwch 3 euros"echo "3. Tabaco 5 euros"echo ""read -p "Introduzca opcion:" opread -p " Introduzca importe: " moncase $op in1)precio=1;;2)precio=3;;3)
Página 7 de 17Asir II: Scripts BASH ejercicios
31/01/2013http://asir2.blogspot.com.es/p/scripts-bash-ejercicios.html
precio=5;;*)echo "Opcion incorrecta"esacwhile [ $mon -lt $precio ]; dofalta=`expr $precio - $mon`read -p " Introduzca $falta euros, por favor introduzcalos" masmon=`expr $mon + $mas`doneif [ $mon -gt $precio ]; thencambio=`expr $mon - $precio`echo "Gracias por su compra, su cambio es de $cambio euros"
elseecho "Gracias por su compra. Buen provecho"fi---------------#!/bin/bash#Realizar un script que pida introducir la ruta de un directorio por teclado (Hay que validar que la variable introducida sea un directorio) nos diga cuantos archivos y cuantos directorios hay dentro de ese directorio.
read -p "Introduzca la ruta de un directorio :" diruntil [ -d $dir ]; doread -p "Introduzca la ruta de un directorio :" dirdonecont=0contf=0 for var in `ls $dir`; do
if [ -d $var ]; then cont=`expr $cont + 1` elif [ -f $var ]; then contf=`expr $contf + 1` fi
doneecho "Ha introducido $cont directorios y $contf ficheros."echo "Se han introducido $# parametros"
-------------------------------------
#/!bin/bash#Realiza un script que introduzca numero por parametro y muestre tabla de multiplicar
echo " la tabla de multiplicar de $1 es: "numerador=1while [ $numerador -lt 11 ]; doresul=`expr $1 \* $numerador`echo "$1 x $numerador = $resul"numerador=`expr $numerador + 1`done
------------------
#!/bind/bash#apertura carpeta contenido ASIRls /home/asir<!--[if !supportLineBreakNewLine]--><!--[endif]-->------------------------#/!bin/bash#Realiza un script que muestre por pantalla los numeros del 1 al 20
num=1while [ $num -lt 21 ]; doecho "$num"num=`expr $num + 1`done---------------------------
Página 8 de 17Asir II: Scripts BASH ejercicios
31/01/2013http://asir2.blogspot.com.es/p/scripts-bash-ejercicios.html