Exam Ens Rips
Click here to load reader
-
Upload
jose-dario-vega-alvarez -
Category
Documents
-
view
71 -
download
1
Transcript of Exam Ens Rips
![Page 1: Exam Ens Rips](https://reader038.fdocument.pub/reader038/viewer/2022100507/55721388497959fc0b927b82/html5/thumbnails/1.jpg)
#! /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](https://reader038.fdocument.pub/reader038/viewer/2022100507/55721388497959fc0b927b82/html5/thumbnails/2.jpg)
# 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](https://reader038.fdocument.pub/reader038/viewer/2022100507/55721388497959fc0b927b82/html5/thumbnails/3.jpg)
ELEVADO=`echo $ELEVADO $1 | awk '{ print $1*$2 }'`
done
echo $ELEVADO
![Page 4: Exam Ens Rips](https://reader038.fdocument.pub/reader038/viewer/2022100507/55721388497959fc0b927b82/html5/thumbnails/4.jpg)
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](https://reader038.fdocument.pub/reader038/viewer/2022100507/55721388497959fc0b927b82/html5/thumbnails/5.jpg)
#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](https://reader038.fdocument.pub/reader038/viewer/2022100507/55721388497959fc0b927b82/html5/thumbnails/6.jpg)
#!/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](https://reader038.fdocument.pub/reader038/viewer/2022100507/55721388497959fc0b927b82/html5/thumbnails/7.jpg)
#! /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](https://reader038.fdocument.pub/reader038/viewer/2022100507/55721388497959fc0b927b82/html5/thumbnails/8.jpg)
#!/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](https://reader038.fdocument.pub/reader038/viewer/2022100507/55721388497959fc0b927b82/html5/thumbnails/9.jpg)
}
# 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](https://reader038.fdocument.pub/reader038/viewer/2022100507/55721388497959fc0b927b82/html5/thumbnails/10.jpg)
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](https://reader038.fdocument.pub/reader038/viewer/2022100507/55721388497959fc0b927b82/html5/thumbnails/11.jpg)
# 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](https://reader038.fdocument.pub/reader038/viewer/2022100507/55721388497959fc0b927b82/html5/thumbnails/12.jpg)
# 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](https://reader038.fdocument.pub/reader038/viewer/2022100507/55721388497959fc0b927b82/html5/thumbnails/13.jpg)
# 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](https://reader038.fdocument.pub/reader038/viewer/2022100507/55721388497959fc0b927b82/html5/thumbnails/14.jpg)
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](https://reader038.fdocument.pub/reader038/viewer/2022100507/55721388497959fc0b927b82/html5/thumbnails/15.jpg)
# 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](https://reader038.fdocument.pub/reader038/viewer/2022100507/55721388497959fc0b927b82/html5/thumbnails/16.jpg)
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](https://reader038.fdocument.pub/reader038/viewer/2022100507/55721388497959fc0b927b82/html5/thumbnails/17.jpg)
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](https://reader038.fdocument.pub/reader038/viewer/2022100507/55721388497959fc0b927b82/html5/thumbnails/18.jpg)
# si LINEA_USUARIO esta vacía
# entonces no está el usario registrado
if [ -z $LINEA_USUARIO ]; then
echo "NO"
else
echo "SI"
fi