miércoles, 26 de agosto de 2015

Scripst III

Mas ejemplos para programar.

Ejercicios propuestos en los últimos exámenes

  1. Realiza un script que me devuelva el número de enlaces simbólicos del directorio actual.
  2. Realiza un script que pida por teclado una palabra. El algoritmo indica si hay el mismo número de vocales y consonantes o te indica cuál tiene más.
  3. Realiza un programa que pida un número y me devuelva todos los números hasta ese número repetidos tantas veces como indique su valor. Por ejemplo: si meto el 4, me devuelve, 1223334444.
  4. Programa que dado un nombre de grupo determine si existe en el sistema, y si es así, presente su nombre, número de grupo (GID), y lista de usuarios que pertenecen a él.

jueves, 20 de agosto de 2015

Solución Scripts I, ejercicio 4.

Solución al ejercicio numero 4:

if [ $# -eq 0 ]

then

echo tienes que pasar algún argumento, $0 directorios

exit 1

#¿por qué exit 1 y no exit 0?

#Los dos terminan o acaban el proceso, pero para finalizaciones normales mejor exit 0

#indicando al proceso padre la terminación normal del proceso hijo

#para utilizaciones incompletas del proceso o terminaciones anormales, mejor poner exit 1

fi

fecha=$(date "+Y-%m-%d")

if [ -e $fecha.lista ]

then

echo Error, el fichero lista ya existe.

exit 1

fi

for var in $*

do

if ! [ -d $var ]

then

echo Error, $var no es un directorio

exit 1

fi

done

touch $fecha.lista

for var in $*

do

echo $var>>$fecha.lista

done

#también puedes hacer: echo $*|tr " " "\n">$fecha.lista

tar cfz $fecha.tar.gz $*

martes, 9 de junio de 2015

Soluciones scripts II

Como podéis comprobar la mayoría de los ejercicios se pueden hacer de varias formas, pero recordar QUE LA ÚNICA LIMITACIÓN QUE TIENE EL PROGRAMADOR ES SU PROPIA IMAGINACIÓN.

Solución al ejercicio número 1:

También puedes poner solamente la secuencia de números pares

for var in 0 1 2 3 4 5 6 7 8 9 10 12 -- también for var in `seq 1 12;` o $(seq 1 12)

do

if [ `expr $var % 2` -eq 0 ]

then

for var2 in 0 1 2 3 4 5 6 7 8 9 10

do

echo "$var x $var2" = `expr $var \* $var2`

done

fi

read

done

Solución al ejercicio número 2:

linea="linea"

while [ ! -z "$linea" ]

do

read linea

if [ ! -z "Slinea" ]

then

numlinea=`expr $numlinea + 1`

echo " La linea numero: $numlinea del fichero es: $linea"

fi

done</home/alumno/fichero.txt

Otras formas o posibles soluciones:

  • nl fichero.txt|tr -s"\t" " "|cut -d " " -f2|tail -1
  • otra:
    • cat -n fichero.txt
    • cat fichero.txt|wc -l

Solución al ejercicio número 3:

if test $# -ne 2 –a $1 –lt $2

then

echo “Introduce solo dos números y el segundo mayor que el primero”

else

for (( i=$1; i<=$2;i++))

do

echo “$i”

done

fi

Solución al ejercicio número 4:

for var in $*

do

if [ -d $var ]

then

echo $var es un directorio

rm –ri $var

fi

if [ -f $var –a `find . –name $var –a –size +100c` ]

then

echo $var es un fichero de mas de 100 bytes

rm $var

else

echo $var no tiene 100

fi

done

lunes, 8 de junio de 2015

Scripts II

Más ejemplos para programar.

Ejercicios propuestos en el examen de Junio del 2013

  1. Realiza un script que muestre todas las tablas de multiplicar de los números pares hasta el 12 incluido.
  2. Realiza un guión que nos muestre las líneas de un fichero numeradas y nos diga el número total de líneas(igual que wc).
  3. Realiza un script que devuelva todos los números comprendidos entre dos números enteros que se le pasen como parametros. Se tiene que comprobar que se le pasan dos números y que el primero es menor que el segundo, en casos contrarios mostrar un error.
  4. Realiza un sript que borre los todos los directorios y ficheros que le pasamos. El fichero tiene que tener un tamaño superior a 100bytes.

viernes, 5 de junio de 2015

Soluciones Scripts I

Solución al ejercicio numero 1:

creamos el script : copiaseguridad cp -R /home /mnt/respaldo

ejecutamos el crontab -e: 00 10 * * 7 ./home/copiaseguridad

Solución al ejercicio numero 2:

ps aux|sort -r -k3|grep -w $usuario|head -1

ps -eo user -o %cpu -o cmd|sort -r|grep $usuario|head -1

Solución al ejercicio numero 3:

clear

echo "Introduzca el nombre de usuario a comprobar: "

read nombre

if `who|grep $nombre >/dev/null`

then

echo "El usuario está conectado"

ps –u $nombre|wc -l

else

echo "El usuario no está conectado"

fi

miércoles, 27 de mayo de 2015

Soluciones ejercicios de JavaScript.

Ejercico 1 .
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>Calculo de la letra del DNI</title>
<script type="text/javascript">
var letras = ['T', 'R', 'W', 'A', 'G', 'M', 'Y', 'F', 'P', 'D', 'X', 'B', 'N', 'J', 'Z', 'S', 'Q', 'V', 'H', 'L', 'C', 'K', 'E'];
var letras2 = ['A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L', 'M', 'N', 'O', 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W', 'X', 'Y', 'Z'];
var i;
var x;
var resul;
for(i in letras2)
{
    for(x in letras)
        {
              if(letras2[i]==letras[x])
            {
              resul += 1;
              }
        }
        if (resul == 0)
        {
           alert(letras2[i]);
           }
        resul=0;
}
</script>
</head>
<body>
<p>ok</p>
</body>
</html>
Ejercicio 2
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>Ejercicio 2</title>
 <script type="text/javascript">
function alreves(cadena) {
  var cadenaarray = cadena.split(" "); 
 var cadenareves=cadenaarray.reverse();
 var cadenafin=cadenareves.join(" ");
    return cadenafin;
}
 var mensaje=prompt("Introcuce tu nombre y dos apellidos");
alert(alreves(mensaje));
</script>
</head>
 <body>
<p> HOLA</p>
</body>
</html>
Ejercicio 5.
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>numero de caracteres</title>
 <script type="text/javascript">
var texto="5.    Realizar un ejercicio que cuando se pulse en el enunciado nos muestre el número de caracteres."
var numero = texto.length;
</script>
</head>
 <body>
<p onclick="alert(numero)">5.    Realizar un ejercicio que cuando se pulse en el enunciado nos muestre el número de caracteres.</p>
</body>
</html>
Ejercicio 6.
 !DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>mayor</title>
 <script type="text/javascript">
var numeros = prompt("Introduce los números ");
var numero=0;
numero = numeros.split(" ");
var mayor=0;
for(var i = 0; i <=numero.length; i++)
{
     if (numero[i] >= mayor)
     {
        mayor= numero[i];
     }
}
alert(mayor);
</script>
</head>
 <body>
ok
</body>
</html>
Ejercicio 7.
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>posicion</title>
 <script type="text/javascript">
var numeros = prompt("Introduce los números ");
var numero=0;
numero = numeros.split(" ");
var mayor=0;
for(var i = 0; i <=numero.length-1; i++)
{
     if (numero[i] >= mayor)
     {
        mayor= numero[i];
     }
}
var posicion = numero.indexOf(mayor);
alert(posicion);
</script>
</head>
 <body>
ok
</body>
</html>

martes, 26 de mayo de 2015

Scripts I

Ejemplos para programar.

Estos ejercicios han sido propuestos en distintos exámenes. En estos casos utilizar el demonio cron y los comandos tar y ps.

  1. Haz un guión que haga una copia de seguridad del nuestro home, en el directorio /mnt/respaldo, todos los domingos a las 10:00.
  2. Muéstrame el proceso con mayor carga en el sistema del usuario que le pasas como parámetro.
  3. Haz un script que compruebe que el usuario que le pides por teclado esta conectado y si es así, muestra el numero de procesos que tiene en el sistema.
  4. Haz un script que cree un archivo tar comprimido con la lista de directorio que le pasas. Tienes que comprobar que en esa lista, todos son directorios, si no fuera así, muestras el error y se sale.El nombre del fichero tar será dd-mm-yyyy.tar.gz. Crea también un archivo dd-mm-yyyy.lista, con los nombres de los directorios comprimidos. Si el fichero lista existiera, muestra el error y te sales.