Exam Ens Rips

18

Click here to load reader

Transcript of Exam Ens Rips

Page 1: Exam Ens Rips

#! /bin/bash

# si no pasan nigún parámetro

if [ "x$1" == "x" ]; then

date +"%d/%m/%Y"

exit 0

fi

# si pasan el parámetro '-l' o el parámetro '--larga'

if [ "$1" == "-l" -o "$1" == "--larga" ]; then

date +"Hoy es el día '%d' del mes '%m' del año '%Y'."

exit 0

fi

# en caso contrario

echo "Opción incorrecta."

exit 1

/bin/bash

# si el número de parámetros es distinto de 1

if [ "$#" != "1" ]; then

echo "El número de parámetros introducido es incorrecto."

exit 1

fi

Page 2: Exam Ens Rips

# muestra el listado ordenado de mayor a menor por el tamaño

# sacando sólo el tamaño y el nombre del archivo

ls -sS $1

#! /bin/bash

# fichero donde se encuentran los ususarios

FICHERO_USUARIOS=/etc/passwd

# muestra los nombres de los usuarios del fichero '/etc/passwd'

# (primera columna del archivo, cuyas columnas están separadas por dos puntos)

# y el número de la línea en la que se encuentra

more $FICHERO_USUARIOS | cut -d : -f 1 | n

l#! /bin/bash

# si el número de parámetros es distinto de 2

if [ $# -ne 2 ]; then

echo "Para ejecutar este script se necesitan 2 números."

exit 2

fi

#inicializamos variables

ELEVADO=1

# para cada parámetro introducido

for ((CONTADOR=0; CONTADOR<$2; CONTADOR++)); do

Page 3: Exam Ens Rips

ELEVADO=`echo $ELEVADO $1 | awk '{ print $1*$2 }'`

done

echo $ELEVADO

Page 4: Exam Ens Rips

Examen SHELL-SCRIPTS DE LINUX

1. Realizar un script llamado elevado que calcule “a^b”, osea “a elevado a b”,

donde “a” será el primer parámetro y “b” el segundo parámetro. En el caso

de que el número de parámetros introducidos sea menor que 2 se mostrará

el siguiente mensaje de error: “Para ejecutar este script se necesitan 2

números.” y retornará un código de retorno igual a #!/bin/bash #comprueba la entrada de dos parámetros fi [ $# -eq 2 ];then #inicializa la variable de cálculo for ((var=0; var<$2; var=$var+1));do

#realiza operación let numelevado=$numelevado*$1

done # saca resultado echo “La potencia es = $numelevado” else # saca el mensaje para introducir los parámetro # y sale con código 2 echo “Hay que introducir dos parámetros” exit 2 fi

2. Realizar un script llamado fecha al que si pasamos el parámetro -l o el

parámetro --larga mostrará la fecha de hoy con el formato “Hoy es el día

'$DIA' del mes '$MES' del año '$AÑO'.” Si no pasámos ningún parametro

mostrará la fecha de hoy con el formato “$DIA/$MES/$AÑO” Si pasamos

otra cosa que no sea -l o --larga mostrará el siguiente mensaje de error:

“Opción incorrecta.” y retornará un código de retorno igual a 1.

#!/bin/bash

case $1 in

#no introduce parámetros

“”)

date +‟La fecha es %d/%m/%Y‟;;

Page 5: Exam Ens Rips

#introduce los parámetros requeridos

-l|--larga)

date +‟Hoy e día %d del mes %m del año %Y‟;;

#cualquier otra cos

*)

echo “Opción incorrecta

exit 1

case

3. Realizar un script llamado listado que liste el contenido del directorio pasado

por parámetro. El listado estará ordenado por tamaño del archivo de

mayor a menor. El listado sólo mostrará el tamaño y el nombre de los

archivos. En el caso de que el número de parámetros introducidos sea

distinto de 1 se mostrará el siguiente mensaje de error: “El número de

parámetros introducido es incorrecto.” y retornará un código de retorno

igual a 1.-

#!/bin/bash

if [ $# -ne 1 ];then

echo “El número de parámetros es incorrecto”

exit 1

else

clear #borra la pantall

ls -1sS $1

fi

4. Realizar un script llamado usuarios que muestra del archivo /etc/passwd

sólo los nombres de los usuarios del sistema (primera columna del archivo,

cuyas columnas están separadas por : -dos puntos-) y el número de línea

para cada uno de los usuarios.

Page 6: Exam Ens Rips

#!/bin/bash

awk –F „{ print $1 }‟ /etc/passwd

NOTA: Los mensajes de error (los que están subrayados) deberán ponerse tal cual

(mayúsculas, minúsculas, comillas simples, acentos, comas, puntos y sustituyendo

las variables por su valor correspondiente). Y cuando el script retorne un valor

sólo devolverá dicho valor (sin florituras del estilo MEDIA=3.5).

Page 7: Exam Ens Rips

#! /bin/bash

# script que multiplicacion dos números

# función de ayuda

function ayuda() {

cat << DESCRIPCION_AYUDA

SYNOPIS

$0 NUMERO_1 NUMERO_2

DESCRIPCIÓN

Muestra por pantalla la multiplicacion de NUMERO_1 NUMERO_2.

CODIGOS DE RETORNO

0 Si no hay ningún error.

1 Si el número de parámetros es distinto de 2.

DESCRIPCION_AYUDA

}

# si número de parámetros distinto 2

if [ $# -ne 2 ] ; then

echo "Hay que introducir sólo 2 parámetros"

ayuda

exit 1

fi

echo $1 $2 | awk '{ print $1 * $2 }'

Page 8: Exam Ens Rips

#!/bin/bash

# Este script calcula el area de un rectáangulo

# pasandole la base y la altura por parámetros (a=b*h)

# verifica que solamente se introduzcan dos parámetros y en el caso de

# error se mostrará el mensaje "Hay que introducir dos parámetros y

# saldrá con el código de retorno 1

#

#Descripción de la función ayuda

function ayuda() {

cat << DESCRIPCION_AYUDA

DESCRIPCION

Calcula el area de un rectángulo

CODIGO DE RETORNO

0 Si no hay ningún error.

1 Si no se introduce ningún parámetro.

DESCRIPCION_AYUDA

}

# función de error, muestra el mensaje de error, la ayuda y

# sale del programa mostrando un código de retorno

function error() {

echo $1

ayuda

exit $2

Page 9: Exam Ens Rips

}

# si el parametro es cero saca mensaje, ayuda, y termina el programa con el codigo de retorno 1

if [ $# -ne 2 ]; then

error "Debes de introducir dos parámetros" 1

else

# calcula el area del rectángulo

let AREA=$1*$2

echo "El area del rectangulo es $AREA"

fi

#!/bin/bash

# Este script calcula el area de un rectáangulo

# pasandole la base y la altura por parámetros (a=b*h)

# verifica que solamente se introduzcan dos parámetros y en el caso de

# error se mostrará el mensaje "Hay que introducir dos parámetros y

# saldrá con el código de retorno 1

#

#Descripción de la función ayuda

function ayuda() {

cat << DESCRIPCION_AYUDA

DESCRIPCION

Calcula el area de un rectángulo

CODIGO DE RETORNO

Page 10: Exam Ens Rips

0 Si no hay ningún error.

1 Si no se introduce ningún parámetro.

DESCRIPCION_AYUDA

}

# función de error, muestra el mensaje de error, la ayuda y

# sale del programa mostrando un código de retorno

function error() {

echo $1

ayuda

exit $2

}

# si el parametro es cero saca mensaje, ayuda, y termina el programa con el codigo de retorno 1

if [ $# -ne 2 ]; then

error "Debes de introducir dos parámetros" 1

else

# calcula el area del rectángulo

let AREA=$1*$2

echo "El area del rectangulo es $AREA"

fi

#! /bin/bash

# script que resta dos números

Page 11: Exam Ens Rips

# función de ayuda

function ayuda() {

cat << DESCRIPCION_AYUDA

SYNOPIS

$0 NUMERO_1 NUMERO_2

DESCRIPCIÓN

Muestra por pantalla la resta de NUMERO_1 NUMERO_2.

CODIGOS DE RETORNO

0 Si no hay ningún error.

1 Si el número de parámetros es distinto de 2.

DESCRIPCION_AYUDA

}

# si número de parámetros distinto 2

if [ $# -ne 2 ] ; then

echo "Hay que introducir sólo 2 parámetros"

ayuda

exit 1

fi

echo $1 $2 | awk '{ print $1 - $2 }'

#! /bin/bash

# script que resta dos números

Page 12: Exam Ens Rips

# función de ayudaIiiiiiiiiiiiiiiii

function ayuda() {

cat << DESCRIPCION_AYUDA

SYNOPIS

$0 NUMERO_1 NUMERO_2

DESCRIPCIÓN

Muestra por pantalla la resta de NUMERO_1 NUMERO_2.

CODIGOS DE RETORNO

0 Si no hay ningún error.

1 Si el número de parámetros es distinto de 2.

DESCRIPCION_AYUDA

}

# si número de parámetros distinto 2

if [ $# -ne 2 ] ; then

echo "Hay que introducir sólo 2 parámetros"

ayuda

exit 1

fi

echo $1 $2 | awk '{ print $1 - $2 }'

#! /bin/bash

# script que suma dos números

Page 13: Exam Ens Rips

# función de ayuda

function ayuda() {

cat << DESCRIPCION_AYUDA

SYNOPIS

$0 NUMERO_1 NUMERO_2

DESCRIPCIÓN

Muestra por pantalla la suma de NUMERO_1 NUMERO_2.

CODIGOS DE RETORNO

0 Si no hay ningún error.

1 Si el número de parámetros es distinto de 2.

DESCRIPCION_AYUDA

}

# si número de parámetros distinto 2

if [ $# -ne 2 ] ; then

echo "Hay que introducir sólo 2 parámetros"

ayuda

exit 1

fi

echo $

# si el primer parámetro no es un número

if [ -n "$1" -a "$1" != "0" -a "`echo $1 | awk '{ print $1 * 1 }'`" != "$1" ]; then

# mostramos un mensaje de error, de ayuda y salimos con 2

error "El parámetro '$1' no es un número" 2

Page 14: Exam Ens Rips

fi

# si el primer parámetro es menor que 1

if [ $1 -lt 1 ]; then

# mostramos un mensaje de error, de ayuda y salimos con 3

error "El primer parámetro es menor que 1" 3

fi

# si el primer parámetro es mayor que 99

if [ $1 -gt 99 ]; then

# mostramos un mensaje de error, de ayuda y salimos con 4

error "El primer parámetro es mayor que 99" 4

fi

SUMATORIO=0

# iteramos hasta el número indicado

for ((ITERADOR=0; ITERADOR <= $1; ITERADOR++)); do

SUMATORIO=$((SUMATORIO+ITERADOR))

done

echo $SUMATORIO1 $2 | awk '{ print $1 + $2 }'

#!/bin/bash

# Este script calcula el area de un triangulo

# pasandole la base y la altura por parámetros (a=(b*h)/2)

Page 15: Exam Ens Rips

# verifica que solamente se introduzcan dos parámetros y en el caso de

# error se mostrará el mensaje "Hay que introducir dos parámetros y

# saldrá con el código de retorno 1

#

#Descripción de la función ayuda

function ayuda() {

cat << DESCRIPCION_AYUDA

DESCRIPCION

Calcula el area de un triángulo

CODIGO DE RETORNO

0 Si no hay ningún error.

1 Si no se introduce ningún parámetro.

DESCRIPCION_AYUDA

}

# función de error, muestra el mensaje de error, la ayuda y

# sale del programa mostrando un código de retorno

function error() {

echo $1

ayuda

exit $2

}

# si el parametro es cero saca mensaje, ayuda, y termina el programa con el codigo de retorno 1

if [ $# -ne 2 ]; then

Page 16: Exam Ens Rips

error "Debes de introducir dos parámetros" 1

else

# calcula el area del triángulo

let AREA=($1*$2)/2

echo "El area del triangulo es $AREA"

fi

#! /bin/bash

# script que muestra "SI" si el usuarioa pasado por parámetro

# está registado en el sistema

# y "NO" en caso contrario

# verifica que sólo hayamos introducido un parámetro

# retorne un código de error en caso de error

# función que muestra la ayuda

function ayuda() {

cat << DESCRIPCION_AYUDA

SYNOPIS

$0 USUARIO

DESCRIPCION

Muestra "SI" si USUARIO está registado en el sistema

y "NO" en caso contrario.

CODIGOS DE RETORNO

0 Si no hay ningún error

1 Si no se ha introducido ningún parámetro ó más de 1.

Page 17: Exam Ens Rips

DESCRIPCION_AYUDA

}

# función que nos muestra un mensaje de error, la ayuda

# y sale del programa con un coódigo de retorno

# $1 mensaje de error

# $2 código de retorno

function error() {

# muestra un mensaje de error

echo $1

# muestra un mensaje de ayuda

ayuda

# sale con el código de error

exit $2

}

# si número de parámetros es distinto de 1

if [ $# -ne 1 ]; then

# muestra un mensaje de error, muestra ayuda y sale con 1

error "Hay que introducir un parámetro y sólo uno." 1

fi

# variable que guarda la linea de /etc/password donde está el usuario

LINEA_USUARIO=`grep -E ^$1 /etc/passwd`

Page 18: Exam Ens Rips

# si LINEA_USUARIO esta vacía

# entonces no está el usario registrado

if [ -z $LINEA_USUARIO ]; then

echo "NO"

else

echo "SI"

fi