9
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 lineas Less (fichero)| tail –n 5 nos muestra las ultimas 5 lineas Less (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 CHMOD Ejemplo Chmod u +x expresión-logica.sh U= permiso a usuario += agregar X= 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 sitio Google Friend Connect Miembros (2) ¿Ya eres miembro?Iniciar sesión Sigueme 0 Compartir Más Siguiente blog» Crear un blog Acceder Página 1 de 17 Asir II: Scripts BASH ejercicios 31/01/2013 http://asir2.blogspot.com.es/p/scripts-bash-ejercicios.html

ejerciciosSHELL_3.pdf

Embed Size (px)

Citation preview

Page 1: ejerciciosSHELL_3.pdf

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

Page 2: ejerciciosSHELL_3.pdf

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

Page 3: ejerciciosSHELL_3.pdf

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

Page 4: ejerciciosSHELL_3.pdf

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

Page 5: ejerciciosSHELL_3.pdf

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

Page 6: ejerciciosSHELL_3.pdf

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

Page 7: ejerciciosSHELL_3.pdf

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

Page 8: ejerciciosSHELL_3.pdf

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

Page 9: ejerciciosSHELL_3.pdf