Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Ejercicios de Scripts
A tener en cuenta:
-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
Chmod u +x expresión-logica.sh
U= permiso a usuario
+= agregar
X= ejecutable
Sintaxis:
Case $variable in
Valor1)
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]; Then
Realiza expresión si es verdadera
Else
Realiza expresión si es falsa
FI
-n utilizamos para variables si no es nula
-z Utilizamos para variables nulo, vacia o no definida
PROGRAMAS A REALIZAR
-------------------------------------------------------
#!/bin/bash
#primer programa
Echo Hola mundo
------------------------------------------------------------
#!/bin/bash
#Movimiento de fichero de una ruta a otra
Mv /home/asir/ASO/TEMA1/ejercicios/tema1 /home/asir/SRI/TEMA1/DHCP/ejercicios
-------------------------------------------------------------
Fichero que solicita nombre y edad por pantalla
#!bin/bash
#Muestra nombre y apellidos por parámetros
Echo “Introduzca su nombre”
Read nombre
Echo “introduzca su edad”
Read edad
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
-------------------------------------------------------------
#!bin/bash
#Muestra nombre y apellidos por parámetros
Echo -n “Introduzca su nombre: ”
Read nombre
Echo -n “introduzca su edad: ”
Read edad
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: “ nombre
read -p “introduzca su edad: ” edad
-------------------------------------------------------------
#!bin/bash
#Muestra nombre y apellidos por parámetros
Actual=2011
-------------------------------------------------------------
#!bin/bash
#Pasando por parámetro, especificamos fichero y donde moverlo
Echo Movemos el fichero $1 a la carpeta $2
Mv $1 $2
Echo nos muestra el contenido del fichero
Ls $2
---------------------------------------------------------------
#!/bind/bash
#programa que compara el nombre y nos da mensaje si somo o no
Name=jhon
Echo –n “introduce tu nombre: “
Read nombre
----------------------------------------------------------------
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 ]; then
Echo “Hola, eres” $1 buenos dias
Else
Echo “Hola, Tu no eres” $name
fi
-----------------------------------------------------------------
#!/bind/bash
#programa que compara el año de nacimiento
Anho=1976
Read –p “introduce tu naño de nacimiento: “ anio
----------------------------------------------------------
#!/bind/bash
#pasados 2 valores por parametro, indique cual de lo dos es mayor o si son iguales
else
echo $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
else
echo "El directorio no existe"
mkdir $dir1
echo "Se ha creado el directorio " $dir1
ls
fi
-----------------------------------------------------
#!/bind/bash
#Nos pide la edad y nos dice si es mayor de edad o menor
else
echo "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 ]; then
echo "El fichero existe se llama "$1
else
touch $1
echo "Se ha creado el fichero con el nombre "$1
fi
----------------------------------------------------------
#!/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.
if [ -a $f1 ]; then
echo "El fichero existe se llama "$f1
else
touch $f1
echo "Se ha creado el fichero con el nombre "$f1
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 ]; then
echo "El parametro introducido es un fichero"
ls -l $1
if [ -r $1 ];then
echo " Tiene permisos de Lectura"
else
echo "No es un fichero comun"
fi
else
echo "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 ]; then
echo "El parametro introducido es un fichero"
more $1
elif [ -d $1 ]; then
cd $1
ls
else
echo " 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.
case $op in
1)
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?"
case $op in
a)
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
;;
e)
resto=`expr $num1 % $num2`
echo "Ha pulsado opcion e, el resto es "$resto
;;
f)
res=`expr $num1 % 2`
if [ $res -eq 0 ]; then
echo " el numero introducido es " $num1 " es par"
else
echo " 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 tecla
case $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=0
contf=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"
fi
done
echo "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:" op
read -p " Introduzca importe: " mon
case $op in
1)
precio=1
;;
2)
precio=3
;;
3)
precio=5
;;
*)
echo "Opcion incorrecta"
esac
while [ $mon -lt $precio ]; do
falta=`expr $precio - $mon`
read -p " Introduzca $falta euros, por favor introduzcalos" mas
mon=`expr $mon + $mas`
done
if [ $mon -gt $precio ]; then
cambio=`expr $mon - $precio`
echo "Gracias por su compra, su cambio es de $cambio euros"
else
echo "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.
-------------------------------------
#/!bin/bash
#Realiza un script que introduzca numero por parametro y muestre tabla de multiplicar
------------------
#!/bind/bash
#apertura carpeta contenido ASIR
ls /home/asir
------------------------
#/!bin/bash
#Realiza un script que muestre por pantalla los numeros del 1 al 20
num=1
while [ $num -lt 21 ]; do
echo "$num"
num=`expr $num + 1`
done
---------------------------