Escolar Documentos
Profissional Documentos
Cultura Documentos
Ejercicios de Scripts
A tener en cuenta:
-eq
-me
-lt
=
=
<
-gt
>
-le
<=
-ge
>=
-a
Si existe
-d
-f
Existe es un
directorio
Existe es un fichero
-r
Es de lectura
-w
Es de escritura
-x
Es ejecutable
Expresiones lgicas
If [Expresion]; Then
Realiza expresin si es verdadera
FI Cierra la estructura
If [Expresion]; Then
Realiza expresin si es verdadera
Else
Realiza expresin si es falsa
FI
-n utilizamos para variables si no es nula
-z Utilizamos para variables nulo, vacia o no definida
Cuando hay ms de dos opciones utilizamos ELIF
If [Expresion]; Then
Realiza expresin si es verdadera
elif [Expresion]; Then
Realiza expresin si es verdadera
elif [Expresion]; Then
------------------------------------------------------#!/bin/bash
#primer programa
Echo Hola mundo
Guardamos con extensin .SH
- primer-programa.sh
Name=jhon
Echo n introduce tu nombre:
Read nombre
If [ $nombre = $name ]; then
Echo Hola, eres $nombre
Else
Echo Hola, Tu no eres $name
fi
guardamos como parmetros.sh
Ejecutamos bash parmetros.sh
---------------------------------------------------------------Creamos script con parmetros
#!/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
guardamos como parmetros1.sh
Ejecutamos bash parmetros1.sh jhon
----------------------------------------------------------------#!/bind/bash
#programa que compara el ao de nacimiento
Anho=1976
Read p introduce tu nao de nacimiento: anio
If [ $anio -eq $anho ]; then
Echo Hola, naciste $anho
Else
Echo Hola, Tu no naciste $anho
fi
Guardamos como parmetros2.sh
Ejecutamos bash parmetros2.sh
---------------------------------------------------------#!/bind/bash
#pasados 2 valores por parametro, indique cual de lo dos es mayor o si son iguales
read -p "introduce un valor: " num1
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.
read -p "Introduzca ruta del fichero: " f1
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"
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
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 ""
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
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
echo " la tabla de multiplicar de $1 es: "
numerador=1
while [ $numerador -lt 11 ]; do
resul=`expr $1 \* $numerador`
echo "$1 x $numerador = $resul"
numerador=`expr $numerador + 1`
done
------------------
#!/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
---------------------------