jueves, 16 de mayo de 2019

Ejercicios OBLIGATORIOS a realizar el 20/05/2019



El segundo ejercicio consiste en hacer un carro de la compra con diferentes usuarios que iremos guardando en un fichero (usuarios.txt), un listado  de productos (productos.txt) , el cual se irá actualizando.
Si además ponéis cuánto gasta cada usuario , sería perfecto .

Fichero de productos : productos.txt 

Producto Cantidad Precio
manzana     50              2 
pera             100            1
...

Fichero actualizado ( Productos que quedan después de las compras ) 

Producto Cantidad Precio
manzana 20              2
pera         90              1
...


usuarios.txt

Usuario    Gasto total(euros)
Pepe          3
Juan          4
...


  

viernes, 10 de mayo de 2019

Ejercicios de Linux

1) Las tablas de multiplicar 1 al 10
2) Los números primos del 1 al 1000
3) Los números perfectos del 1 al 100 (Un número perfecto es un número natural que es igual a la suma de sus divisores propios positivos. )
4) Si un número introducido por pantalla es par o impar
5) Haz un algoritmo que saque esto por pantalla después de ejecutar ./piramide_num.sh 4

01
01 02
01 02 03
01 02 03 04

6) Estudia estos ejercicios :

#!/bin/bash
for i in {1..12};do

echo $i

done
echo "********"

for i in $(seq 1  3 20); do

echo $i

done
echo "********"

for i in *;do

echo $i

done
echo "********"



for i in $(ls -lt|tr -s " "|cut -d" " -f9);do

echo $i

done
echo "********"

for i in $*;do

echo $i
done

echo "********"

#ARRAYS#
declare -a array

cont=0
for i in *.txt;
do
array[$cont]=$i
((cont++))
done



echo ${array[0]}
echo ${array[1]}
echo ${array[2]}


echo ${#array[@]}
echo ${array[@]}


======================================


#!/bin/bash

clear
echo "Programado por $USER el $(date +%d-%m-%y)"
sleep 2

while true
do

echo
echo AGENDA TELEFONICA
echo 1.BUSCAR ENTRADA
echo 2.INSERTAR ENTRADA
echo 3.BORRAR TODA LA AGENDA
echo 4.BORRAR ENTRADA
echo 5.MOSTRAR LISTADO
echo 6.VER USUARIOS CONECTADOS
echo 7.VER MÁQUINAS CONECTADOS
echo 8.APAGA EL SERVIDOR 
echo 10.SALIR
read -p "Introduce una opcion:" opcion 

case $opcion in
1)
 clear
  read -p "¿Qué nombre quieres buscar?" nombre
  if $(grep -iw "$nombre" datos.dat>/dev/null)
  then
echo "$nombre está en la agenda"

  else
echo "$nombre no está en la agenda"
  fi
;;
2)
clear
read -p "¿Qué nombre quieres añadir?" nombre telefono
if $(grep -iw "$nombre" datos.dat>/dev/null)
then
  echo "Esta entrada existe"
else
fila=$(cat datos.dat|wc -l)
((fila++))
echo "$fila. nombre:$nombre telefono:$telefono" >> datos.dat
fi
;;

3)
clear
echo -n "¿Está seguro que quiere borrar su agenda[S|N]?"
read contestacion
if [ $contestacion = "S" -o $contestacion = "s" ];then
sed "1,\$d" datos.dat  >datos_new.dat
mv datos_new.dat datos.dat
echo "AGENDA BORRADA"

fi



;;

4)
clear
read -p "¿Qué nombre quieres borrar?" nombre
grep -iv $nombre datos.dat >datos_new.dat
mv datos_new.dat datos.dat

;;
5)
clear
echo -e
echo "LISTIN DE TELEFONOS"
cat datos.dat
;;
6)
clear
cont=0
who|cut -d" " -f1 >usuarios.dat
echo "USUARIOS CONECTADOS:"
  for i in $(cat usuarios.dat|sort -u);do

echo "$cont. $i"
((cont++))

done


;;
7)
clear
cont=0
echo "MÁQUINAS CONECTADAS:"
  for i in $(cat ping.dat);do



if $(ping -c 1 $i |grep -iw "TTL">/dev/null) ;then

echo "$cont. $i MAQUINA CONECTADA"

else
echo "$cont. $i MAQUINA NO CONECTADA"

fi

((cont++))

done


;;
8)
clear




;;
*)
echo -e
echo Saliendo...
sleep 3
exit
esac

done