- Realice un shell-script que admita tres palabras como argumentos y que muestre un mensaje informando de las relaciones de igualdad y desigualdad entre esas palabras. Por linea de comandos. Todas las posibilidades entre las 3. No va con for.
- Mostrar los ficheros del directorio donde se ejecuta este script en
los que NO tenemos permiso de escritura
(Para ejecutar este script no entrar en el sistema como root ya que root
siempre tendrá permisos de escritura).
Los que no tienen permisos de escritura. - Realizar un script que muestre los números que hay entre dos nº pasados por línea de comando, el cuadrado de cada uno, la suma de ellos, la multiplicación de cada uno.
- Si el primer nº es mayor que el 2º debemos tenerlo en
cuenta y debe funcionar. Deben pasarse exactamente dos parámetros.
Por linea de comandos. La suma debe ser de todos los números comprendidos entre los dos pasados por comando. Con la multiplicación igual que con la suma. - Mostrar por pantalla el día de la semana en el que estamos con todas las letras.
- Realiza un script que escriba al revés una palabra.
- Crear un scripts que muestre por pantalla las tablas de multiplicar del 1 al 10
-------------------------------------
clear
##### INICIO FUNCIONES #####
function menu()
{
clear
echo " MENU "
echo "_____________________________________"
echo "| |"
echo "| 1. Crea Carpeta P15 en Home |"
echo "| 2. Introduce AMIGOS |"
echo "| 3. Copias en BACKUP |"
echo "| 4. Crea fichero vacio en BACKUP |"
echo "| 5. AMIGOS de Sevilla |"
echo "| 6. AMIGOS de la ciudad ... |"
echo "| 7. Nº de AMIGOS de cada ciudad |"
echo "| 8. Busca AMIGO y di su Telefono |"
echo "| 9. SALIR |"
echo "|____________________________________|"
read opcion
}
function pausa()
{
read -p "Presiona cualquier tecla para continuar ..."
echo ""
}
function crea_carpeta()
{
if test -d ~/P15
then
echo "La carpeta P15 en Home ya existe"
else
mkdir ~/P15
echo "Se acaba de crar la carpeta P15 en Home"
echo ""
fi
}
function mas_amigos()
{
resp=s
while test $resp = s
do
echo "NOMBRE:"
read nombre
echo "EMAIL:"
read email
echo "TELEFONO:"
read telefono
echo "$nombre:$email:$telefono">>~/P15/amigos.txt
echo "¿Quiere introducur otro AMIGO? s/n"
read resp
done
}
function introduce()
{
if test -d ~/P15
then
echo "Existe la carpeta P15 en Home"
echo "Procede a introducir AMIGOS"
echo ""
if test -f ~/P15/amigos.txt
then
echo "El fichero amigos.txt ya existe"
echo " s - Si Sobre-Escribe perdera los datos anteriores"
echo " n - No Sobre-Escribe añadira nuevos AMIGOS"
echo "¿Quiere Sobre-Escribir el fichero? s/n"
read resp
if test $resp = s
then
echo "Se va a Sobre-Escribir el fichero"
echo "Se perderán los datos anteriores"
echo ""
echo "NOMBRE:EMAIL:TELEFONO">~/P15/amigos.txt
mas_amigos
else
echo "Se van a Añadir nuevos AMIGOS"
echo ""
mas_amigos
fi
else
echo "Se va a crear por primera vez el fichero amigos.txt"
echo ""
echo "NOMBRE:EMAIL:TELEFONO">~/P15/amigos.txt
mas_amigos
fi
else
echo "La carpeta P15 no existe en Home"
echo "Debe crearla primero"
echo ""
crea_carpeta
echo "Ahora ya esta crada, vuelva a introducir la opcion [2] de MENU"
fi
}
function copias()
{
if test -d ~/P15/BACKUP
then
echo "La carpeta BACKUP ya existe"
echo "Se van a Sobre-Escribir las COPIAS"
rm ~/P15/BACKUP/amigos*.txt
pausa
else
mkdir ~/P15/BACKUP
echo "Se acaba de crear la carpeta BACKUP dentro de Home/P15"
echo "Ahora se procede a realizarse la COPIAS"
pausa
fi
if test -f ~/P15/amigos.txt
then
cp ~/P15/amigos.txt ~/P15/BACKUP/amigos-c.txt
echo "Se ha realizado una copia de amigos.txt en la carpeta BACKUP"
pausa
ln -s ~/P15/amigos.txt ~/P15/BACKUP/amigos-s.txt
echo "Se ha realizado un ENLACE SIMBOLICO de amigos.txt en la carpeta BACKUP"
pausa
ln ~/P15/amigos.txt ~/P15/BACKUP/amigos-d.txt
echo "Se ha realizado un ENLACE DURO de amigos.txt en la carpeta BACKUP"
pausa
echo "VEAMOS TODAS LAS COPIAS EN BACKUP"
ls -li ~/P15/BACKUP/
else
echo "El fichero amigos.txt no existe"
echo "Debes crearlo primero con la opción [2] del MENU"
fi
}
function fichero_vacio()
{
>~/P15/BACKUP/vacio.txt
echo "Se acaba de crear un fichero llamado vacio.txt en la carpeta BACKUP"
pausa
echo "Busqueda de ficheros de tamaño 0 en carpeta BACKUP:"
find ~/P15/BACKUP/ -size 0b
}
function sevilla()
{
echo "Si ya existe el fichero sevilla.txt"
echo "Se Sobre-Escribira el nuevo contenido"
sed -n 1p ~/P15/amigos.txt>~/P15/sevilla.txt
busqueda=`cut -d ":" -f3 ~/P15/amigos.txt|egrep "^955"`
for linea in $busqueda
do
sed -n -e '/'$linea'/p' ~/P15/amigos.txt>>~/P15/sevilla.txt
done
echo ""
echo "Contenido del fichero sevilla.txt"
cat ~/P15/sevilla.txt
}
function ciudad()
{
echo "¿De que ciudad quieres ver tús Amigos?"
read ciudad
case $ciudad in
sevilla|Sevilla|SEVILLA) resp=955;;
badajoz|Badajoz|BADAJOZ) resp=924;;
cadiz|Cadiz|CADIZ) resp=956;;
*) echo "Esa ciudad no es una opción valida";;
esac
busqueda=`sed -e 1d ~/P15/amigos.txt|cut -d ":" -f3|egrep "^$resp"`
echo ""
echo "Los amigos de la provincia de $ciudad es/son:"
for linea in $busqueda
do
sed -n -e '/'$linea'/p' ~/P15/amigos.txt
done
}
function numero()
{
num=`wc -l ~/P15/amigos.txt`
busq1=`sed -e 1d ~/P15/amigos.txt|cut -d ":" -f3|egrep "^955"`
busq2=`sed -e 1d ~/P15/amigos.txt|cut -d ":" -f3|egrep "^956"`
busq3=`sed -e 1d ~/P15/amigos.txt|cut -d ":" -f3|egrep "^924"`
sevilla=0
cadiz=0
badajoz=0
for contador in $num
do
for linea in $busq1
do
sevilla=`expr $sevilla + 1`
done
for linea in $busq2
do
cadiz=`expr $cadiz + 1`
done
for linea in $busq3
do
badajoz=`expr $badajoz + 1`
done
done
echo "Amigos de la Provincia de Sevilla = $sevilla"
echo "Amigos de la Provincia de Cadiz = $cadiz"
echo "Amigos de la Provincia de Badajoz = $badajoz"
}
function busca()
{
echo "Dime el nombre del AMIGO a buscar:"
read amigo
busqueda=`cut -d ":" -f1 ~/P15/amigos.txt|egrep $amigo`
#echo "busqueda= $busqueda"
echo ""
echo "El resultado de tú busqueda es:"
if test -n "$busqueda"
then
#echo "entra"
result=`sed -n -e '/'$busqueda'/p' ~/P15/amigos.txt`
echo "- $result"
echo ""
echo "- ¿Quieres borrar a este AMIGO? s/n"
read contes
if test $contes = s
then
for linea in $busqueda
do
#echo "entra en for"
sed '/'$result'/d' ~/P15/amigos.txt > ~/P15/tmp
done
echo ""
echo "- Resultado del fichero amigos.txt modificado"
cat ~/P15/tmp > ~/P15/amigos.txt
rm ~/P15/tmp
cat ~/P15/amigos.txt
else
echo ""
echo "- El fichero amigos.txt no se ha modificado"
fi
else
echo "- El AMIGO buscado no existe en este fichero"
fi
}
##### FIN DE FUNCIONES #####
opcion=0
while test $opcion -ne 9
do
menu
case $opcion in
1) echo "1. Crea Carpeta P15 en Home"
crea_carpeta
echo ""
pausa;;
2) echo "2. Introdue AMIGOS"
introduce
echo ""
pausa;;
3) echo "3.Copias en BACKUP"
copias
echo ""
pausa;;
4) echo "4. Crea fichero vacio en BACKUP"
fichero_vacio
echo ""
pausa;;
5) echo "5. AMIGOS en Sevilla"
sevilla
echo ""
pausa;;
6) echo "6. AMIGOS en la ciudad ..."
ciudad
echo ""
pausa;;
7) echo "7. Nº de AMIGOS de cada ciudad"
numero
echo ""
pausa;;
8) echo "8. Busca AMIGO y di su Telefono"
busca
echo ""
pausa;;
9) echo "__________________________________________"
echo "| |"
echo "| HAS SALIDO CORRECTAMENTE DEL PROGRAMA |"
echo "|_________________________________________|"
echo ""
pausa;;
*) echo "ERROR"
echo "Opción Incorrecta. Prueba de Nuevo"
echo ""
pausa;;
esac
done