sábado, 28 de junio de 2014

Programas para conectarte a una red wifi

Os dejo dos programitas con los que os podéis conectar a una red wifi.
Los enlaces de descarga, son:
Funcionan con unas mac determinadas, pero bueno, al menos es algo si no tienes internet.
Te descargas los programas que vienen los dos en rar y los extraes donde tú quieras.

Abres el Wireless y te muestra todas las redes que capta. Te da todos los detalles y te da las direcciones mac.
Abres el Wjdecrypter y si te pones sobre el cuadro de la Mac y te dirá las Mac que son compatibles. Busca una que sea compatible y cópiala, la separación entre los dos pares de números tiene que ser con dos puntos, que es como se ponen las direcciones Mac, con los guiones no te lo aceptara.

Al meter la mac correctamente, se ponen las aspas verdes como se puede ver en la imagen y el ESSID en modo AUTO. Entonces se pulsa el botón de generar clave y te muestra las claves de la red a la que puedes conectarte.
Ir a vuestro centro de redes, elegir la red de la cual habéis obtenido la clave e introducirla. Si con la que ha generado no se conecta cambiar las letras minúsculas por mayúsculas, que por defecto el programa os las da en minúsculas y algunas claves son en mayúsculas. Si con esa no os funciona, probar con otra red.

OTROS PROGRAMAS QUE ABARCAN MAS REDES

Para empezar, debemos descargar las últimas versiones de ambos programas, actualmente:

Airwin: http://www.bitsdelocos.es/SW/AirWin2.0.1.zip
SWifiKeygen: http://www.bitsdelocos.es/SW/SWifi_Keygen0.6.zip
Cuando los tengamos descargamos descomprimimos en primer lugar el Airwin
Le damos a Scan para que te busque las redes disponibles y seleccionamos la red que queramos usar, de esa forma se nos rellenan los espacios que vienen vacios.
Apuntamos tanto la Mac como la red que es y abrimos el swifi Keygen
Seleccionas el tipo de red, la escribes al lado la que corresponda.
Escribes la Mac que es el BSSID que aparece en el Airwin, le das a generar y te generara una clave que se guardara en un archivo de texto que se llama diccionario que se guardara donde hayas extraído los archivos del .rar del programa.

Te vas a tu centro de redes, eliges la red que has escogido e introduces la clave, y ya puedes navegar por internet.
Yo lo he probado y funciona con ambos métodos.




martes, 24 de junio de 2014

Instalación y funcionamiento de pdfsam en windows xp

Yo recomiendo descargar siempre los programas de las páginas oficiales, suelen ser más seguros, aunque eso no quita que puedan llevar virus, malwares y demás. Si en la instalación intentan que os instaléis otras cosas, mi consejo es que no lo marquéis.
La página oficial desde donde os podéis descargar el programa es:


La instalación es guiada, dejo unas cuantas capturas de pantalla y luego ya es bichear el programa para ver cómo funciona, yo dejo aquí unas cuantas acciones,…
PDFSam : una herramienta básica para la transformación de PDFs
 (PDF Sam) es una herramienta multiplataforma (construida en Java) que permite dar solución a varias de las operaciones más comunes en el ámbito de la transformación de los archivos PDF:
·         Intercalación/Mezcla de varios ficheros PDF para crear un único documento final.
1.      Seleccionamos la opción “Barreja alterna”o “mezcla alterna”, depende de la versión que os hayáis descargado.
2.      Añadimos los ficheros PDF que queremos combinar
3.      Determinamos cómo vamos a mezclar los ficheros
4.      Damos un nombre para el nuevo fichero PDF que va a generarse
5.      Seleccionamos la opción “Executa”
·           Unión de dos o más ficheros PDFs (uno a continuación del otro)
A.     Seleccionamos la opción “Combina/extreu”
B.     Añadimos los ficheros PDF que queremos unir
C.     Damos un nombre para el nuevo fichero PDF que va a generarse
D.     Seleccionamos la opción “Ejecuta”
·         División de un archivo PDF (en páginas sueltas) 
1.      Seleccionamos la opción “Dividir”
2.      Añadimos los ficheros PDF que queremos dividir
3.      Determinamos qué paginas vamos a extraer (todas, pares,  impares, a partir de una página determinada, etc.)
4.      Seleccionamos la carpeta de destino para los ficheros PDF que van a generarse
5.      Seleccionamos la opción “Ejecuta”
·         Personalizar la orientación de cada una de las páginas de un PDF.
1.      Seleccionamos la opción “Editor visual de documents” o “reordenamiento visual”
2.      Añadimos los ficheros PDF que queremos personalizar
3.      Modificamos la orientación u orden de cada una de las páginas seleccionándolas una a una y utilizando las opciones que nos ofrece el editor
4.      Damos un nombre para el nuevo fichero PDF que va a generarse
5.      Seleccionamos la opción “Ejecuta”
·          Modificar la orientación para todas las páginas de un PDF
1.      Seleccionamos la opción “Gira”
2.      Añadimos los ficheros PDF que queremos editar
3.      Determinar el ángulo de giro que va a aplicarse y el grupo de páginas al que va a afectar
4.      Seleccionamos la carpeta de destino para los ficheros PDF que van a generarse
5.      Seleccionamos la opción “Ejecuta”


lunes, 23 de junio de 2014

Script de Linux

P1.1.sh Realiza un script que compruebe si dos cadenas que se le pasan como parámetros son iguales o no.

# !/bin/bash
if test $1 == $2
# compruebo si los parametros pasados por lista de comando son iguales
#necesito el doble igual porque si no lo que hago es una asignación
then
        echo "las palabras son iguales"
else
        echo "las palabras son distintas" fi
P1.2.sh Realiza un script que solicite un número y si es mayor que 200 muestre el mensaje “mayor que 200, grande”.
#!/bin/bash
echo "introduce un número"
read num1
if test $num1 -gt 200
then
        echo "el número es mayor que 200"
else
        echo "el número es más chico"
fi

P1.3.sh Realiza un script que muestre por pantalla la pregunta “¿Quién descubrió América?” y, según la respuesta, muestre el mensaje “Es correcto” o “No es correcto”.
#!/bin/bash
echo "quien descubrio America?"
read nombre1
if test $nombre1 == "Colon" || $nombre1=="colon" || $nombre1=="COLON"
# para poner un or en script es con doble ||
# el and se pone con &&
 then
        echo "Es correcto"
else
        echo "No es correcto"
fi
P1.4.sh Crea un script que solicite un número y diga si es par o impar.
#!/bin/bash
echo "dame un número"
read num1
resto=`expr $num1 % 2`
if test $resto -eq 0
then
         echo "es par"
else
         echo "es impar"
fi

P1.5.sh Pasa dos valores por línea de comando y realiza la suma, la resta, la multiplicación, la división y el resto.
suma=`expr $1 + $2`
echo "la suma es $suma"
resta=`expr $1 - $2`
echo "la resta es $resta"
multiplicacion=`expr $1 \* $2`
echo "la multiplicación es $multiplicacion"
division=`expr $1 / $2`
echo "la división es $division"
resto=`expr $1 % $2`
echo "el resto es $resto"

P1.6.sh Crear un script que:
a. Muestre la carpeta dónde estoy situado
b. Usuarios conectados
c. Quien soy
d. Ver el contenido del directorio personal del usuario conectado
e. Ver la fecha y hora actual.

#!/bin/bash
pwd
whoami
who
ls -l ~/
date

P1.7.sh Realizar un script que nos pregunta la edad por teclado y que nos conteste:
a. Si menor que 10 “eres muy joven”
b. Entre 10 y 25 “que mala edad tienes”
c. Más de 25 “que bien te veo”

#!/bin/bash
echo "que edad tienes?"
read edad
if test $edad -lt 10
then
         echo "Eres muy joven"
else 
         if test $edad -gt 25
         then
                   echo "que bien te veo"
         else
                   echo "que mala edad tienes"
         fi
fi

P1.8.sh Con “case” un scripts que nos pregunte “¿Quién descubrió América?”, comprobar respuesta correcta y falsa.
#!/bin/bash
echo "quien descubrio america?"
read nombre
case $nombre in
        Colon)          echo "la respuesta es correcta";;
        colon)          echo "la respuesta es correcta";;
        COLON)          echo "la respuesta es correcta";;
       “Cristobal Colon”) echo “la respuesta es correcta”;;
        *)              echo "la respuesta no es correcta";;
esac

P2.1.sh Realizar un script que pida dos valores por teclado y después muestre un menú:
 1.- Suma.  
 2.- Resta.
 3.- Multiplicación.
 4.- División.
 5.- Es par el 1º número.
 6.- Es impar el 2º número.

#!/bin/bash
echo "dame un número"
read num1
echo "dame un número menor"
read num2
echo "elige una opción entre el 1 y el 6"
read opcion
case $opcion in
        1)      echo "hace la suma"
                suma=`expr $num1 + $num2`
                echo "la suma es $suma";;
        2)      echo "hace la resta"
                resta=`expr $num1 - $num2`
                echo "la resta es $resta";;
        3)      echo "hace la multiplicacion"
                multiplicacion=`expr $num1 \* $num2`
                echo "la multiplicacion es $multiplicacion";;
        4)      echo "hace la division"
                division=`expr $num1 / $num2`
                echo "la division es $division";;
        5)      echo "mira si el primer número es par"
                resto=`expr $num1 % 2`
                if test $resto -eq 0
                then
                        echo "es par"
                else
                        echo "es impar"
                fi;;
        6)      echo "mira si el segundo número es impar"
                resto2=`expr $num2 % 2`
                if test $resto2 -eq 1
                then
                        echo "es impar"
                else
                        echo "es par"
                   fi;;
esac

P2.2.sh Realiza un script que pida tres nombres por teclado. Los almacene en un fichero llamado nombres.txt. Ordene alfabéticamente dicho fichero llamándolo nombres-ordenado.txt y lo muestre tanto desordenado como ordenado.

#!/bin/bash
echo "dame un nombre"
read nombre1
echo "dame otro nombre"
read nombre2
echo "dame otro nombre"
read nombre3
echo "almacena los nombres en un fichero"

echo "$nombre1" >  nombres.txt
echo "$nombre2" >> nombres.txt
echo "$nombre3" >> nombres.txt 
echo "ordenar el fichero y renombrarlo"
sort  nombres.txt > nombres-ordenado.txt 
echo "muestralo ordenado"
sort nombres-ordenado.txt 
echo "muestralo desordenado"
cat nombres.txt 

P2.3.sh Crea un script que pida dos números por teclado. Si el primero es mayor que el segundo los restamos. En caso contrario mostramos un mensaje indicando que no se pueden restar.

#!/bin/bash
echo "dame un número"
read num1
echo "dame otro número"
read num2
if test $num1 -gt $num2
then
        resta=`expr $num1 - $num2`
        echo "la resta es $resta"
else           
        echo "no se pueden restar"
fi

P2.4.sh Crea un script que pida dos números por línea de comando. Si el primero es mayor que el segundo los restamos. En caso contrario mostramos un mensaje indicando que no se pueden restar.

#!/bin/bash
#introduces dos números por parámetros
if test $1 -gt $2
then
        resta=`expr $1 - $2`
        echo "la resta es $resta"
else           
        echo "no se pueden restar"
fi

P2.5.sh Hacer un script en el que después de introducir por línea de comandos valores, me muestre:
Todos los valores que he introducido: $*
El nombre del fichero: $0
Nº de parámetros introducidos: $#
El primer parámetro: $1
El segundo parámetro: $2

#!/bin/bash
echo "mostrar todos los $* introducidos"
echo "mostrar  el nombre del fichero $0"
echo "mostrar el número de parámetros introducidos $#"
echo "mostrar el primer parámetro $1"
echo "mostrar el segundo parámetro $2"

P3.1.sh Escribir los 10 primeros números naturales. While.

#!/bin/bash
echo " mostrar los 10 numeros naturales con while"
num=0
while test $num -le 10
do
        echo "$num"
        num=`expr $num + 1`
done


P3.2.sh Escribir los 10 primeros números naturales. Until.

#!/bin/bash
echo " mostrar los 10 numeros naturales con until"
num=0
until test $num -gt 10
do
        echo "$num"
        num=`expr $num + 1`
done

P3.3.sh Escribir los 20 primeros números pares. While.

#!/bin/bash
echo " mostrar los 20 primeros numeros pares con while"
num=0
while test $num -le 20
do
        echo "$num"
        num=`expr $num + 2`
done


P3.4.sh Escribir los 20 primeros números pares. Until.

#!/bin/bash
echo " mostrar los 20 primeros numeros pares con until"
num=0
until test $num -gt 20
do
       echo "$num"
       num=`expr $num + 2`
done

P3.5.sh Pide un nombre de fruta por teclado hasta que escriba “salir” y llévalos a un fichero llamado p58-frutas.txt. Muestra el contenido del fichero ordenado.

#! /bin/bash
echo "pedir un nombre de fruta y seguir hasta que se diga salir"
echo "dime una fruta"
read fruta
while test $fruta == salir
do
echo "$fruta"
fruta==* >> p58-frutas.txt
cat p58-frutas.txt
done

P3.6. sh Pide un número por teclado y muestra la tabla de multiplicar de ese número. While

#! /bin/bash
echo " dame un número y muestra su tabla de multiplicar"
echo "dame un número"
read numero
n=0
while test $numero -le 10
do
result ='expr $n \* $numero'
echo "$numero * $n”
n='expr $n + 1'
done

P3.7.sh Pide un número por teclado y muestra la tabla de multiplicar de ese número. Until

#! /bin/bash
echo " dame un número y muestra su tabla de multiplicar"
echo "dame un número"
read numero
n=0
until test $numero -gt 10
do
result ='expr $n \* $numero'
echo "$numero * $n “
n='expr $n + 1'
done

P4.1. sh Escribir los 10 primeros números naturales. For

#!/bin/bash
echo " mostrar los 10 numeros naturales con for"
for ((i=0; i< 11; i ++))
do
        echo "numero:$i"
done

P4.2.sh Escribir los 20 primeros números pares.

#! /bin/bash
echo "escribir los 20 primeros numeros pares con for"
for ((i=0; i<21; i++))
do     
        multi=`expr 2 \* $i`
       echo "$multi"
done


P4.3.sh Escribir los 20 primeros números impares.

      #! /bin/bash
     echo "escribir los 20 primeros numeros impares con for"
     for ((i=0; i<20; i++))
      do     
    suma=`expr $i + $i + 1`
        echo "$suma"
done

P4.4.sh Pide un número por teclado y muestra la tabla de multiplicar de ese número.

#! /bin/bash
echo "dame un numero y imprime tabla de multiplicar"
read num
for ((i=1; i<=10; i++))
do
        multi=`expr $i \* $num`
        echo "$num * $i=$multi"
done

por linea de comando

#! /bin/bash
echo "mostrar tabla de multiplicar de $1"
for ((i=1; i<=10; i++))
do
        multi=`expr $i \* $1`
        echo "$1 * $i=$multi"
done

P4.5.sh Hacer un script mediante el cual todos los valores que introduzcamos por línea de comandos nos lo muestre después de ejecutar el script.

#!/bin/bash
for contador in $*
do
      echo “$contador”
done
echo "mostrar todos los $* introducidos"

P4.6.sh Hacer un script mediante el cual cree un fichero p511pares.txt con los 100 primeros números pares.

#!/bin/bash
echo "crear fichero p511pares.txt con los 100 primeros numeros pares"
for ((i=0; totalpares<=100; i++))
do     
          resto=`expr $i % 2`
      if test $resto -eq 0
      themn
            echo “$i”
            totalpares=`expr $totalpares + 1
      fi
done
echo "$totalpares" >> ~/misscripts/p511pares.txt

P5.1.sh 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.

#!/bin/bash
clear
echo "debes introducir dos numeros por parametros, el primero mayor que el segundo”
resultado=`expr $1 - $2`
echo "los numeros que hay entre $1 y $2 son:$resultado"
cuadrado1=`expr $1 \* $1`
echo "el cuadrado de $1 es $cuadrado1"
cuadrado2=`expr $2 \* $2`
echo "el cuadrado de $2 es $cuadrado2"
suma=`expr $1 + $2`
echo "la suma de $1 y $2 es:$suma"
multiplicacion=`expr $1 \* $2`
echo "la multiplicacion de $1 y $2 es:$multiplicacion"

P5.2.sh Mostrar por pantalla el día de la semana en el que estamos con todas las letras.

#!/bin/bash
clear
date +%A

P5.3.sh Realiza un script que escriba al revés una palabra.

#!/bin/bash
clear
echo "para salir debes pulsar control + c"
echo "escribe la palabra que quieras y la imprimira al reves"
rev


P5.4.sh Crear un scripts que muestre por pantalla las tablas de multiplicar del 1 al 10.

#!/bin/bash
clear
for ((i=1;i<=10;i++))
do
        for ((j=1;j<=10;j++))
        do     
                multi=`expr $i \* $j`
                echo "$i*$j=$multi"
        done
done

P6.1.sh Realizar un menú para trabajar sobre un fichero con el siguiente formato:
equipo1:equipo2:golesequipo1:golesequipo2
1. Pedir datos de equipos y goles y añadir los datos en el fichero futbol.txt. Preguntar previamente el nº de partidos que queremos generar. FUNCIONES.

function op1 ()

{
        echo "he entrado en la opcion 1"
        echo "número de partidos que queremos generar"
         read num
         for ((i=1; i<=$num; i++))
         do
                echo “datos del partido $i”
          echo "dime el nombre del equipo 1"
                     read equipo1
                     echo "dime el nombre del equipo 2"
                     read equipo2
                 echo “dime el nombre de goles equipo1”
                  read goles1
      echo “dime el nombre de goles equipo2”
      read goles2
     echo “equipo1:equipo2:goles1:goles2”
     echo “$equipo1:$equipo2:$goles1:$goles2 “>> ~/boletinXIII/futbol.txt
      done
}

2. Mostrar contenido del fichero (si existe) .FUNCIONES
function op2 ()

{
        echo "he entrado en la opcion 2"
        echo "voy a mostrar el fichero si existe"
        if test -f ~/boletinXIII/futbol.txt
        then
                echo "el fichero existe"
                cat ~/ boletinXIII/futbol.txt
        else
                echo "el fichero no existe"
        fi
}

3. Pedir nombre de equipo y si está, devolver el nº de partidos jugados

function op3 ()
{
        echo "he entrado en la opcion 3"
        echo "voy a pedir el nombre del equipo"
        read equipo
        if test $equipo -eq ~/misscripts/boletinXIII/futbol.txt
        then
                numpartidos=`wc -l ~/misscripts/boletinXIII/futbol.txt`
                echo "el numero de partidos jugados es $numpartidos"
        else
                echo "el equipo no ha jugado ningun partido"
        fi
}

4. Mostrar el nº de partidos empatados indicando los equipos y el resultado del empate:
“Los equipos betis-sevilla han empatado a 2”

function op4 ()
{
        echo "he entrado en la opcion 4"
        if test $goles1 -eq $goles2
        then
                echo "los equipos $equipo1 y $equipo2  han empatado a $goles1"
        else
                echo "los equipos no han empatado"
        fi
}

5. Realizar la clasificación si existe el fichero futbol.txt y borrar futbol.txt. El fichero resultante se llama clasificacion.txt
1. Partidos ganados +3
2. Partidos empatados +1
3. Partidos perdidos nada

function op5 ()
{
        echo "he entrado en la opcion 5"
        if test -f ~/misscripts/boletinXIII/futbol.txt
        then
                echo "el fichero existe"
                if test $goles1 -gt $goles2
                then

                        echo "puntos por partido +3"
                        echo "partidos ganados +3" >> ~/misscripts/boletinXIII/$
                        rm ~/misscripts/boletinXIII/futbol.txt
                else
                        if  test $goles1 -eq $goles2
                        then
                                echo "partidos empatados +1" >> ~/misscripts/bo$
                        else
                                echo "partidos perdidos nada" >> ~/misscripts/b$
                                rm ~/misscripts/boletinXIII/futbol.txt
                        fi
                fi
        else
                mkdir ~/misscripts/boletinXIII/futbol.txt
        fi
}

6. Salir
futbol.txt
sevilla:betis:3:0
madrid:barcelona:5:0
cadiz:jaen:2:1
barcelona:sevilla:0:4
jerez:cadiz:2:3
resultado.txt “ORDENADO EN CASO DE EMPATE DE PUNTOS ALFABETICAMENTE”
cadiz-6p
sevilla-6p
madrid-3p
barcelona-0p
betis-0p
jaen-0p
jerez-0p
6. Añadir equipos al fichero y generar aleatoriamente los resultados de los goles de los dos equipos, con valores del 0 al 5.

function op5 ()
{
        echo "he entrado en la opcion 5"
        if test -f ~/misscripts/boletinXIII/futbol.txt
        then
                echo "el fichero existe"
                if test $goles1 -gt $goles2
                then
                        echo "puntos por partido +3"
                        echo "partidos ganados +3" >> ~/misscripts/boletinXIII/$
                        rm ~/misscripts/boletinXIII/futbol.txt
                else
                        if  test $goles1 -eq $goles2
                        then
                                echo "partidos empatados +1" >> ~/misscripts/bo$
                        else
                                echo "partidos perdidos nada" >> ~/misscripts/b$
                                rm ~/misscripts/boletinXIII/futbol.txt
                        fi
                fi
        else
                mkdir ~/misscripts/boletinXIII/futbol.txt
        fi

}
opc=0
while test $opc != 7
do
        echo "introduce una opcion"
        echo "1 -pedir datos de equipo y goles"
        echo "2 -mostrar el contenido del fichero si existe"
        echo "3 -Pedir nombre de equipo y si está, devolver el nº de partidos jugados"
      echo "4 -Mostrar el nº de partidos empatados indicando los equipos y el resultado    del empate"
        echo "5 -realizar la clasificacion"
        echo "6 -añadir equipos al fichero y generar aleatoriamente los resultados de los goles de los dos equipos, con valores del o al 5"
        echo "7 -salir del menu”
        read opc
        case $opc in
                1)      op1;;
                2)      op2;;
                3)      op3;;
                4)      op4;;
                5)      op5;;
                6)      op6;;
                7)      exit;;
        esac
done

P6.2.sh Escriba un script que admita palabras (seguidas de enter) por parte del usuario hasta que este teclee ”salir”. Después debe aparecer en pantalla el número de palabras que se han introducido y una despedida.

#/bin/bash
clear
contador=0
echo "escriba palabras seguidas de enter hasta escribir salir"
echo "puedes introducir datos o salir"
echo "para salir debes escribir salir"
echo "que quieres hacer"
read opcion
while test $opcion != salir
do
                echo "dime una palabra"
                read palabra
                echo "quieres seguir metiendo datos, sino escribir salir"
                read opcion
                contador=`expr $contador + 1`
done
echo "el número de palabras introducidas es $contador"
echo "gracias! adios!"

P6.3.sh Modifique el programa anterior de forma que las palabras se vayan guardando en un fichero ”palabras.txt”.

#/bin/bash
clear
contador=0
echo "escriba palabras seguidas de enter hasta escribir salir"
echo "puedes introducir datos o salir"
echo "para salir debes escribir salir"
echo "que quieres hacer"
read opcion
while test $opcion != salir
do
        echo "dime una palabra"
        read palabra
        echo "quieres seguir metiendo datos, sino escribir salir"
        read opcion
                echo $palabra >> ~/misscripts/boletinXIV/palabras.txt
        contador=`expr $contador + 1`
done
echo "el numero de palabras introducidas es $contador"
echo "gracias, adios!"

P6.4.sh Modifique de nuevo el programa. Consiga que si el usuario introduce un número en lugar de una palabra, se le devuelva la palabra que introdujo en esa posición. Por ejemplo si
introduce ”5 ” se le devolvera la palabra número cinco del fichero ”palabras.txt”.

#/bin/bash
clear
contador=0
echo "escriba palabras seguidas de enter hasta escribir salir"
echo "puedes introducir datos o salir"
echo "para salir debes escribir salir"
echo "que quieres hacer"
read opcion
while test $opcion != salir
do
        echo "dime una palabra"
        read palabra
        echo $palabra >> ~/misscripts/boletinXIV/palabras.txt
        echo "quieres seguir metiendo datos, sino escribir salir"
        read opcion
        if test $palabra =[0-9]
        then
                numerito=`wc -l ~/misscripts/boletinXIV/palabras.txt | cut -c1`
                for ((i=1;i<=$numerito; i++))
                do
                        resultado=`sed -n "$i"p ~/misscripts/boletinXIV/palabra$
                        echo "$resultado"
                done
        else
                echo "no hay palabra"
        fi
        echo $palabra >> ~/misscripts/boletinXIV/palabras.txt
        contador=`expr $contador + 1`
done
echo "el numero de palabras introducidas es $contador"
echo "gracias, adios!"

P6.5.sh Escriba un programa que calcule el resultado de sumar todos los números del 1 al 100 secuencialmente, es decir: 1 + 2 + 3 + 4 + 5...

#/bin/bash
clear
suma=0
for ((i=1;i<=100;i++))
do
                echo "$suma"
                suma=`expr $suma + $i`
done
                echo "la suma es $suma"

P6.6.sh Solicite dos números por teclados. Comprueba que el primero es menor que el segundo, y si es así calcula la suma de todos los números comprendidos entre ellos dos y la media de ellos.
Si el primero es mayor que el segundo debe mostrar un mensaje diciendo que debes introducir un número menor que el segundo.

#/bin/bash
clear
echo "dame un numero"
read numero1
echo "dame otro numero"
read numero2
if test $numero1 -lt $numero2
then
                suma=0
                contador=0
                for ((i=$numero1;i<=$numero2;i++))
                do
                               suma=`expr $suma + $i`
                               contador=`expr $contador + 1`
                done
                echo "la suma de $numero1 hasta $numero2 es: $suma"
                 media=`expr $suma / $contador`
                echo "la media de los numeros es:$media"

else
                echo "la operacion no se puede realizar"
fi

P6.7.sh Modifica el script anterior para que si el primer valor es mayor que el segundo, siga pidiendo valores hasta que el primero sea menor que el segundo.

#/bin/bash
clear
echo "dame un primer número"
read numero1
echo "dame un segundo número"
read numero2
if test $numero1 -lt $numero2
then
        suma=0
        contador=0
        for ((i=$numero1;i<=$numero2;i++))
        do
                suma=`expr $suma + $i`
                contador=`expr $contador + 1`
        done
        echo "la suma de $numero1 hasta $numero2 es: $suma"
        media=`expr $suma / $contador`
        echo "la media de los numeros es:$media"

else
        echo "dame otro primer numero"
                read num1
                while test $num1 -gt $numero2
                do
                               echo "dame otro primer numero"
                             read num1
                done
        suma=0
        contador=0
        for ((i=$num1;i<=$numero2;i++))
        do
                suma=`expr $suma + $i`
                contador=`expr $contador + 1`
        done
        echo "la suma de $numero1 hasta $numero2 es: $suma"
        media=`expr $suma / $contador`
        echo "la media de los numeros es:$media"
fi

P6.8.Ssh Haz que el ordenador “piensa” en un número al azar entre 1 y 50. El usuario ha de adivinarlo en 5 oportunidades. El ordenador señalará si es mayor o menor.

#/bin/bash
clear
echo "el ordenador va a pensar en un numero del 1 al 50"
numero=`echo $((1 + RANDOM %49))`
echo "tienes 5 oportunidades para adivinarlo"
opcion=0
for ((i=1;i<=5;i++))
do
                echo "dime el $i"
                read num1
                if test $num1 -eq $numero
                then
                               echo "has acertado"
                               exit
                else
                               if test $num1 -gt $numero
                               then
                                               echo "$num1 es mayor que el numero que he pensado"
                               else
                                               echo "$num1 es menor que el numero que he pensado"
                               fi
                fi
done

P6.9.sh El ordenador genera 3 números aleatorios entre el 100 y 200. Muéstralos, súmalos, realiza su producto, su media.

#/bin/bash
clear
valor1=201
while test $valor1 -gt 200
do
                valor1=`echo $((100 + $RANDOM %200))`
done
valor2=201
while test $valor2 -gt 200
do
        valor2=`echo $((100 + $RANDOM %200))`
done
valor3=201
while test $valor3 -gt 200
do
        valor3=`echo $((100 + $RANDOM %200))`
done
echo "el primer numero es: $valor1"
echo "el primer numero es: $valor2"
echo "el primer numero es: $valor3"
suma=`expr $valor1 + $valor2 + $valor3`
media=`expr $suma / 3`
producto=`expr $valor1 \* $valor2 \* $valor3`
echo "la suma es: $suma"
echo "la media es: $media"
echo "el producto es: $producto"
9. Realizar un programa que imprima por pantalla tántos asteriscos como diga el usuario. Al
ejecutarse debe preguntar “Cuantos asteriscos desea imprimir?” leer el número que introduce el usuario e imprimir los asteriscos.
#/bin/bash
clear
echo "cuantos asteriscos quieres imprimir"
read num
for ((i=1; i<=$num; i++))
do
                echo "*"
done

P6.11.sh Realizar un programa que pida la base y el exponente y calcule la potencia.
POTENCIA:
Base=5
 5^3= 5 * 5 * 5 =125
Exponente=3

#/bin/bash
clear
echo "dime que base quieres"
read base
echo "dime que exponente quieres"
read exponente
echo "vamos a calcular la potencia"
contador=$exponente
num=1
while test $contador -gt 0
do
                num=`expr $base \* $num`
                contador=`expr $contador - 1`
done
                echo "la potencia es: $num"

P7.1.sh Muestra un menú de opciones:
1. Crea una carpeta dentro de tu home llamada COMPRAS. Si la carpeta existe debe mostrar mensaje.
2. Comprobar que existe COMPRAS. Pedir artículos para introducir en la lista de la compra, mediante funciones.
El fichero tendrá el siguiente aspecto:
Articulo:categoria:cantidad: precio //No incluir cabecera
leche:alimentacion:15:10,30
pan:3:1,15
mantequilla:lácteos:1:2,5
galletas:alimentación:2:3,45
cocacola:bebidas:12:3,80
zumos:bebidas:6:9,12
yogures:lácteos:4:5,23
champú:perfumería:1:1,80
Las categorías pueden ser: Alimentación, perfumería, bebidas, lácteos.
El fichero se creará dentro de ~/COMPRAS/nosvamosdecompra.txt
3. Crea una carpeta dentro de COMPRAS llamado BACKUP.
4. Crea una copia de nosvamosdecompra.txt en una subcarpeta dentro de COMPRAR. El nombre de dicha carpeta se solicita por teclado. El nombre del fichero será compra-c.txt.
5. Idem, crea un enlace simbólico de nosvamosdecompra.txt dentro de BACKUP llamado compra-s.txt.
6. Idem, crea un enlace duro de nosvamosdecompra.txt dentro de BACKUP llamado compra-d.txt.
7. Muestra el contenido de la subcarpeta con sus inodos correspondientes
8. Crea un fichero vacío dentro de la subcarpeta
9. Muestra aquellos ficheros de la subcarpeta que tienen un tamaño > 0
10. Muestra aquellos enlaces simbólicos que existen dentro de la subcarpeta
11. Muestra el contenido de nosvamosdecompra.txt, compra-d.txt, compra-s.txt y compra-c.txt
12. Crea un fichero todos.txt con el contenido de nosvamosdecompra.txt, compra-d.txt, compra-s.txt y compra-c.txt
13. Crea un fichero barato.txt con aquellos artículos con precio menor de 2 euros.
14. Crea un fichero alimentación.txt en el que extraiga aquellos artículos de esta categoría.
15. Cuenta el nº de productos que se van a comprar.
16. Solicitar añadir artículos al fichero, aplica la función de la opción 2.
17. Borra aquellos artículos que sean de perfumería y crea sinperfumeria.txt.
18. Solicita un artículo y bórralo de la lista del fichero nosvamosdecompra.txt.
19. Suma el coste total de la lista de la compra y muéstralo mediante un mensaje.
20. Calcula el precio medio de los artículos y muéstralo mediante un mensaje.
21. Salir.

#bin/bash
clear
function op1crear_carpeta ()
{
            if test -d  ~/COMPRAS
            then
                        echo "la carpeta existe"
            else
                        echo "la carpeta no existe hay que crearlo"
                        mkdir ~/COMPRAS
            fi
}

function op2pedir_articulos ()
{
            if test -d ~/COMPRAS
            then
                        echo "la carpeta existe"
                        if test -f ~/COMPRAS/nosvamosdecompra.txt
                        then
                                   echo "el fichero existe"
                                   echo "quieres introducir datos, sino escribe salir"
                                   read  datos
                                   while test $datos != "salir"
                                   do
                                               echo "dame un articulo"
                                               read articulo
                                              echo "dime una categoria, entre alimentacion, perfumeria, lacteos o bebidas"
                                               read categoria
                                             while test $categoria != "alimentacion" && test $categoria != "perfumeria" && test $categoria != "lacteos" &&  test $categoria != "bebidas"
                                               do
                                                           echo "es incorrecto, tienes que poner una de las siguientes categorias, alimentacion,perfumeria, lacteos o bebidas"
                                                           read categoria
                                               done
                                               echo "dame una cantidad"
                                               read cantidad
                                               echo "dame un precio"
                                               read precio
                                               echo $articulo:$categoria:$cantidad:$precio >>  ~/COMPRAS/nosvamosdecompra.txt
                                               echo "si quieres salir, escribe salir, sino cualquier palabra y sigue introduciendo datos"
                                               read datos
                                   done
                        else
                                   echo "el fichero no existe, crearlo"
                                   echo $articulo:$categoria:$cantidad:$precio >> ~/COMPRAS/nosvamosdecompra.txt
                        fi
            else
                        echo "el archivo no existe, pasar por la opcion 1"
            fi
}

function op3crear_otra_carpeta ()
{
            if test -d ~/COMPRAS
            then
                        if test -d ~/COMPRAS/BACKUP
                        then
                                   echo "la carpeta existe"
                        else
                                   echo "la carpeta no existe hay que crearla"
                                   mkdir ~/COMPRAS/BACKUP
                        fi
            else
                        echo "la carpeta no existe, pasar por la opcion 1"
            fi
}

function op4crear_copia ()
{
            if test -f ~/COMPRAS/nosvamosdecompra.txt
            then
                        echo "el fichero existe"
                        echo "dime el nombre de otra carpeta"
                        read carpeta
                        mkdir ~/COMPRAS/$carpeta
                        cp ~/COMPRAS/nosvamosdecompra.txt ~/COMPRAS/$carpeta/compra-c.txt
            else
                        echo "el fichero no existe, pasar por la opcion 2"
            fi
}

function op5crear_enlace_simb ()
{
            if test -f ~/COMPRAS/nosvamosdecompra.txt
            then
                        if test -d ~/COMPRAS/BACKUP
                        then
                                   echo "la carpeta existe"
                                   ln -s ~/COMPRAS/nosvamosdecompra.txt ~/COMPRAS/BACKUP/compra-s.txt
                        else
                                   echo "la carpeta no existe, pasar por la opcion 3"
                        fi
            else
                        echo "el fichero no existe, pasar por la opcion 2"
            fi
}

function op6crear_enlace_duro ()
{
            if test -f ~/COMPRAS/nosvamosdecompra.txt
            then
                        if test -d ~/COMPRAS/BACKUP
                        then
                                   echo "la carpeta existe"
                                   ln ~/COMPRAS/nosvamosdecompra.txt ~/COMPRAS/BACKUP/compra-d.txt
                        else
                                   echo "la carpeta no existe, pasar por la opcion 3"
                        fi
            else
                        echo "el fichero no existe, pasar por la opcion 2"
            fi
}

function op7mostrar_contenido ()
{
            if test -d ~/COMPRAS/BACKUP
            then
                        echo "los ficheros que hay son los siguientes"
                        ls -i ~/COMPRAS/BACKUP
            else
                        echo "la carpeta no existe, pasar por la opcion 3"
            fi
}

function op8crear_fichero_vacio ()
{
            if test -d ~/COMPRAS/BACKUP
            then
                        echo "vamos a crear un fichero vacio y se guarda en BACKUP"
                        touch ~/COMPRAS/BACKUP/ficherovacio.txt
            else
                        echo "la carpeta no existe, pasar por la opcion 3"
            fi
}

function op9mostrar_fichero ()
{
            if test -d ~/COMPRAS/BACKUP
            then
                        echo "los ficheros mayores que 0 son los siguientes"
                        find ~/COMPRAS/BACKUP -size +0
            else
                        echo "la carpeta no existe, pasar por la opcion 3"
            fi
}

function op10mostrar_enlaces ()
{
            if test -d ~/COMPRAS/BACKUP
            then
                        echo "vamos a mostrar los enlaces simbolicos dentro de la carpeta BACKUP"
                        ls -l ~/COMPRAS/BACKUP > ~/COMPRAS/BACKUP/sim.txt
                        lineas=`wc -l ~/COMPRAS/BACKUP/sim.txt | cut -d" " -f1`
                        for ((i=2;i<=$lineas;i++))
                        do
                                   corta=`sed -n "$i"p ~/COMPRAS/BACKUP/sim.txt |cut -c1`
                                   if test $corta = "l"
                                   then
                                               sed -n "$i"p ~/COMPRAS/BACKUP/sim.txt >> ~/COMPRAS/BACKUP/simfin.txt
                                   else
                                               echo "no existe ningun enlace simbolico"
                                   fi
                        done
                        rm ~/COMPRAS/BACKUP/sim.txt
                        cat ~/COMPRAS/BACKUP/simfin.txt
                        rm ~/COMPRAS/BACKUP/simfin.txt
            else
                        echo "la carpeta no existe, pasar por la opcion 3"
            fi

}

function op11mostrar_contenido_archivos ()
{
#no me muestra los ficheros que si que existen y estan con contenido,aun habiendo comprobado que existen
            if test -f ~/COMPRAS/nosvamosdecompra.txt
            then
                        echo "la carpeta existe"
                        cat ~/COMPRAS/nosvamosdecompra.txt
            else
                        echo "la carpeta no existe, pasar por la opcion 3"
            fi
            echo ""
            if test -f ~/COMPRAS/$carpeta/compras-c.txt
            then
                        echo "la carpeta existe"
                        cat ~/COMPRAS/$carpeta/compras-c.txt
            else
                        echo "la carpeta no existe, pasar por la opcion 4"
            fi
            echo ""
            if test -f ~/COMPRAS/BACKUP/compras-d.txt
            then
                        echo "la carpeta existe"
                        cat ~/COMPRAS/BACKUP/compras-d.txt
            else
                        echo "la carpeta no exite, pasar por la opcion 5"
            fi
            echo ""
            if test -f ~/COMPRAS/BACKUP/compras-s.txt
            then
                        echo "la carpeta existe"
                        cat ~/COMPRAS/BACKUP/compras-s.txt
            else
                        echo "la carpeta no existe, pasar por la opcion 6"
            fi
}

function op12crear_ficheros ()
{
# me crea el fichero todos, aunque me dice que los otros ficheros no existen aunque estan todos comprobados
            if test -f ~/COMPRAS/nosvamosdecompra.txt
        then
                echo "la carpeta existe"
                cat ~/COMPRAS/nosvamosdecompra.txt >> ~/COMPRAS/todos.txt
        else
                echo "la carpeta no existe, pasar por la opcion 3"
        fi
            echo ""
        if test -f ~/COMPRAS/$carpeta/compras-c.txt
        then
                echo "la carpeta existe"
                cat ~/COMPRAS/$carpeta/compras-c.txt >> ~/COMPRAS/todos.txt
        else
                echo "la carpeta no existe, pasar por la opcion 4"
        fi
            echo ""
        if test -f ~/COMPRAS/BACKUP/compras-d.txt
        then
                echo "la carpeta existe"
                cat ~/COMPRAS/BACKUP/compras-d.txt >> ~/COMPRAS/todos.txt
        else
                echo "la carpeta no exite, pasar por la opcion 5"
        fi
            echo ""
        if test -f ~/COMPRAS/BACKUP/compras-s.txt
        then
                echo "la carpeta existe"
                cat ~/COMPRAS/BACKUP/compras-s.txt >> ~/COMPRAS/todos.txt
        else
                echo "la carpeta no existe, pasar por la opcion 6"
        fi
}

function op13crea_ficheros_art ()
{
#me da un error que no consigo ver cual es, y no se si hace lo que se pide
            if test -f ~/COMPRAS/nosvamosdecompra.txt
            then
            num=`wc -l ~/COMPRAS/nosvamosdecompra.txt | cut -c1`
                        for ((i=1;i<=$num;i++))
                        do
                                   precio=`sed -n "$i"p ~/COMPRAS/nosvamosdecompra.txt | cut -d: -f4`
                                   if test $precio -le 2
                                   then
                                               sed -n "$i"p ~/COMPRAS/nosvamosdecompra.txt >> ~/COMPRAS/barato.txt
                                    else
                                               echo "no hay ningun producto inferior a 2 euros"
                                   fi
                done
            else
                echo "el fichero no existe, pasar por la opcion 2"
            fi
}

function op14crea_ficheros_extr
{
#me da un error que no consigo ver cual es, y no se si hace lo que se pide
            if test -f ~/COMPRAS/nosvamosdecompra.txt
        then
                num=`wc -l ~/COMPRAS/nosvamosdecompra.txt | cut -c1`
                for ((i=1;i<=$num;i++))
                do
                        categoria=`sed -n "$i"p ~/COMPRAS/nosvamosdecompra.txt | cut -d: -f2`
                        if test $categoria = "alimentacion"
                        then
                                sed -n "$i"p ~/COMPRAS/nosvamosdecompra.txt >> ~/COMPRAS/alimentacion.txt
                        else
                                echo "no hay ningun producto que tenga la categoria de alimentacion"
                        fi
                done
        else
                echo "el fichero no existe, pasar por la opcion 2"
        fi
}

function op15cuenta_productos ()
{
            if test -f ~/COMPRAS/nosvamosdecompra.txt
            then
                        numero=`wc -l ~/COMPRAS/nosvamosdecompra.txt | cut -c1`
                        echo "el numero de productos que vamos a comprar es $numero"
            else
                        echo "el fichero no existe, pasar por la opcion 2"
            fi
}

function op16añadir_articulos ()
{
            op2pedir_articulos
}

function op17borrar_articulos ()
{
            if test -f ~/COMPRAS/nosvamosdecompra.txt
            then
                        sed -e '/perfumeria/d' ~/COMPRAS/nosvamosdecompra.txt> ~/COMPRAS/sinperfumeria.txt
            else
                        echo "el fichero no existe, pasar por la opcion 2"
            fi
}

function op18solicitar_articulo ()
{
            if test -f ~/COMPRAS/nosvamosdecompra.txt
            then
                        echo "introduce un articulo"
                        read articulo
                        sed -e '/"$articulo"/d' ~/COMPRAS/nosvamosdecompra.txt > ~/COMPRAS/nuevo.txt
                        cat ~/COMPRAS/nuevo.txt > ~/COMPRAS/nosvamosdecompra.txt
                        rm ~/COMPRAS/nuevo.txt
            else
                        echo "el fichero no existe, pasar por la opcion 2"
            fi
}

function op19suma_coste ()
{
# me da error y no se si me funciona
            if test -f ~/COMPRAS/nosvamosdecompra.txt
            then
                        num=`wc -l ~/COMPRAS/nosvamosdecompra.txt | cut -c1`
                for ((i=1;i<=$num;i++))
                do
                        cantidad=`sed -n "$i"p ~/COMPRAS/nosvamosdecompra.txt | cut -d: -f3`
                        precio=`sed -n "$i"p ~/COMPRAS/nosvamosdecompra.txt | cut -d: -f4`
                                   coste=`expr $cantidad \* $precio`
#me da un argumento no entero, no se como hacer que sume las cantidades de todos los productos, porque si es con uno solo si funciona
                                   suma=`expr $i + $coste`
                done
                        echo "el coste es $suma"
            else
                        echo "el fichero no existe, pasar por la opcion 2"
            fi
}

function op20precio_medio ()
{
            if test -f ~/COMPRAS/nosvamosdecompra.txt
        then
                num=`wc -l ~/COMPRAS/nosvamosdecompra.txt | cut -c1`
                for ((i=1;i<=$num;i++))
                do
                                   cantidad=`sed -n "$i"p ~/COMPRAS/nosvamosdecompra.txt | cut -d: -f3`
                        precio=`sed -n "$i"p ~/COMPRAS/nosvamosdecompra.txt | cut -d: -f4`
                        media=`expr $precio / $cantidad`
                done
                echo "el precio medio es $media"
        else
                echo "el fichero no existe, pasar por la opcion 2"
        fi

}

opcion=0
while test $opcion != 21
do
            echo "****************************************************************"
            echo "opcion 1:crear carpeta"
            echo "opcion 2:pedir articulos"
            echo "opcion 3:crear carpeta dentro de COMPRAS"
            echo "opcion 4:crear copia"
            echo "opcion 5:crear enlace simbolico"
            echo "opcion 6:crear enlace duro"
            echo "opcion 7:muestra el contenido de las subcarpetas con sus inodos"
            echo "opcion 8:crea un fichero vacio en la subcarpeta"
            echo "opcion 9:mostrar ficheros con tamaño mayor a 0"
            echo "opcion 10:muestra enlaces simbolicos"
            echo "opcion 11:muestra el contenido de los archivos"
            echo "opcion 12:crea un fichero"
            echo "opcion 13:crea fichero con articulos con precio menor que 2"
            echo "opcion 14:crea fichero que extraiga productos de una categoria"
            echo "opcion 15:cuenta el numero de productos que vas a comprar"
            echo "opcion 16:añadir articulos al fichero"
            echo "opcion 17:borra determinandos articulos"
            echo "opcion 18:solicita un articulo y borralo"
            echo "opcion 19:suma el coste total de la lista de compra"
            echo "opcion 20:calcula el precio medio de los articulos"
            echo "opcion 21:salir"
            echo "****************************************************************"
            read opcion

            case $opcion in
                        1)         op1crear_carpeta;;
                        2)         op2pedir_articulos;;
                        3)         op3crear_otra_carpeta;;
                        4)         op4crear_copia;;
                        5)         op5crear_enlace_simb;;
                        6)         op6crear_enlace_duro;;
                        7)         op7mostrar_contenido;;
                        8)         op8crear_fichero_vacio;;
                        9)         op9mostrar_fichero;;
                        10)       op10mostrar_enlaces;;
                        11)       op11mostrar_contenido_archivos;;
                        12)       op12crear_ficheros;;
                        13)       op13crea_ficheros_art;;
                        14)       op14crea_ficheros_extr;;
                        15)       op15cuenta_productos;;
                        16)       op16añadir_articulos;;
                        17)       op17borrar_articulos;;
                        18)       op18solicitar_articulo;;
                        19)       op19suma_coste;;
                        20)       op20precio_medio;;
                        21)       exit;;
                        *)         echo "la opcion no es correcta"
            esac
done