Ejercicios Shell Script

7
Ejercicios Shell Script Básicos 1. Crear un script que copie todos los archivos de una carpeta especificada u los copie en otra ruta. 2. Realice un script que al pasarle la ruta de un archivo por parámetro, me muestre el tamaño. 3. Realice un script que al pasarle la ruta de un directorio por parámetro, me arroje los siete primeros archivos o carpetas. 4. Realice un script que al pasarle una la ruta de una carpeta me muestre todos los archivos que tiene esa carpeta. 5. Escribir un script que al pasarle un número del 1 al 5, me muestre en pantalla el número en letras. Ejemplo, si le paso el 3 me debe mostrar “TRES” 6. Realice un script que calcule el área de un cuadrado 7. Realice un script Shell que lea tres valores de una compra, muestre el total, arroje la propina del 10% del total para ser entregada al mesero, y muestre el total general. 8. Realice un script que calcule el salario dado el número de horas trabajadas, el valor de la hora. Si la cantidad de horas es mayor que 40, entonces el valor de la hora se incrementa un 50%. 9. Calcular el descuento de un trabajador dependiendo de: 10% si es <= 1.000.000, 20% si es > 1.000.000 y <= 2.000.000, y 30% si es > 2.00.000 y <= 3.000.000 10. Realice un script que a un valor pasado por parámetros, verifique si el archivo existe o no, y que además verifique si es una carpeta o un archivo. Debe escribir el mensaje informando el resultado

Transcript of Ejercicios Shell Script

Page 1: Ejercicios Shell Script

Ejercicios Shell Script Básicos

1. Crear un script que copie todos los archivos de una carpeta especificada u los copie en otra ruta.

2. Realice un script que al pasarle la ruta de un archivo por parámetro, me muestre el tamaño.

3. Realice un script que al pasarle la ruta de un directorio por parámetro, me arroje los siete primeros archivos o carpetas.

4. Realice un script que al pasarle una la ruta de una carpeta me muestre todos los archivos que tiene esa carpeta.

5. Escribir un script que al pasarle un número del 1 al 5, me muestre en pantalla el número en letras. Ejemplo, si le paso el 3 me debe mostrar “TRES”

6. Realice un script que calcule el área de un cuadrado

7. Realice un script Shell que lea tres valores de una compra, muestre el total, arroje la propina del 10% del total para ser entregada al mesero, y muestre el total general.

8. Realice un script que calcule el salario dado el número de horas trabajadas, el valor de la hora. Si la cantidad de horas es mayor que 40, entonces el valor de la hora se incrementa un 50%.

9. Calcular el descuento de un trabajador dependiendo de: 10% si es <= 1.000.000, 20% si es > 1.000.000 y <= 2.000.000, y 30% si es > 2.00.000 y <= 3.000.000

10. Realice un script que a un valor pasado por parámetros, verifique si el archivo existe o no, y que además verifique si es una carpeta o un archivo. Debe escribir el mensaje informando el resultado

Page 2: Ejercicios Shell Script

SOLUCION

1.

#!/bin/bash

directorio1=$1directorio2=$2if [ $# -ne 2 ]; then

echo "Necesita introducir los parámetros <ruta_dir1> <ruta_dir2>"

echo "Use: bash $0 <ruta_dir1> <ruta_dir2>"exit

fiif [ ! -e $directorio1 -a ! -e $directorio2 ]; then

echo "Los ficheros $directorio1 o $directorio2 no son directorios o no existen"

elsefor i in $directorio1 ; do

cp -a $i* $directorio2done

fi

2.

#!/bin/bashdirectorio=$1if [ $# -ne 1 ]; then

echo "Necesita introducir el parámetro <ruta_dir>"echo "Use: bash $0 <ruta_dir>"exit

fiif [ ! -e $directorio ]; then

echo "El fichero $directorio no existe"else

echo "El tamaño del fichero es: "du -sh $directorioecho " "

fiexit 0

3.

Page 3: Ejercicios Shell Script

#!/bin/bash

directorio=$1if [ $# -ne 1 ]; then

echo "Necesita introducir el parámetro <ruta_dir>"echo "Use: bash $0 <ruta_dir>"exit

fiif [ ! -e $directorio ]; then

echo "El fichero $directorio no es directorio o no existe"

elseecho "Los siete primeros ficheros son: "ls $directorio | head -7 echo " "

fi

4.

#!/bin/bashdirectorio=$1if [ $# -ne 1 ]; then

echo "Necesita introducir el parámetro <directorio>"echo "Use: $0 <directorio>"exit

fiif [ ! -e $directorio ]; then

echo "El directorio $directorio no existe"else

echo "Estos son los ficheros del directorio: "ls -l $directorioecho " "

fiexit 0

5.

#!/bin/bashnumero=$1case $numero in

1) echo "UNO" exit 0 ;;

Page 4: Ejercicios Shell Script

2) echo "DOS" exit 0 ;;

3) echo "TRES" exit 0 ;;

4) echo "CUATRO" exit 0 ;;

5) echo "CINCO" exit 0 ;;

*) echo "Verifique parámetro" echo "Utilice: bash $0 <un_numero_de_1_a_5>" exit 0 ;;

esac

6.

#!/bin/bashecho "Cálculo del área de un cuadrado"echo "Introduzca el valor del lado del cuadrado:"read ladocuadrado=$[lado*lado]echo "El valor del área es: $cuadrado "exit 0

7.

#!/bin/bashecho "****************Facturación***************"echo "Introduzca el valor del primer artÃculo"read art1echo "Introduzca el valor del segundo artÃculo"read art2echo "Introduzca el valor del tercer artÃculo"read art3

Page 5: Ejercicios Shell Script

subtotal=$(expr "scale=2; $art1+$art2+$art3" | bc)

porcentaje=0.10propina=$(expr "scale=2; $subtotal*$porcentaje" | bc)total_general=$(expr "scale=2; $propina+$subtotal" | bc)

echo "SUBTOTAL: $subtotal"echo "PROPINA MESERO: $propina"echo "TOTAL GENERAL: $total_general" exit 0

8.

#!/bin/bashecho "*************Salario***************"echo "Ingrese la cantidad de horas trabajadas: "read horastecho "Ingrese el valor de la hora: "read valorh

porcentaje=0.50aumento=$(expr "scale=2; (($valorh*$porcentaje)+$valorh*$horast)" | bc)salario=$(expr "scale=2; ($valorh*$horast)" | bc)if [ $horast -gt 40 ]; then

echo "El salario es: $aumento "else

echo "El salario es: $salario"fiexit

9.

#!/bin/bashecho "***************DESCUENTO SALARIO**************"echo "Ingrese salario:"read salariodiezp=0.10veintep=0.20treintap=0.30desc10=$(expr "scale=3;($salario-($salario*$diezp))" | bc)desc20=$(expr "scale=3;($salario-($salario*$veintep))" | bc)

Page 6: Ejercicios Shell Script

desc30=$(expr "scale=3;($salario-($salario*$treintap))" | bc)

#Esto es para probar si la operacion aritmetica es correcta#echo "$desc10"#echo "$desc20"#echo "$desc30"

if [ $salario -le 1000000 ]; thenecho "El salario es: $desc10"

elif [ $salario -gt 1000000 -a $salario -le 2000000 ]; then

echo "El salario es: $desc20"elif [ $salario -gt 2000000 -a $salario -le 3000000 ];

thenecho "El salario es: $desc30"

else echo "El salario queda sin cambios: $salario"

fiexit 0

10.

#!/bin/bashdirectorio=$1

if [ ! -e $directorio ]; thenecho "El archivo $directorio NO existe"

elif [ -e $directorio -a -d $directorio ]; thenecho "El archivo existe y es un directorio"

elif [ -e $directorio -a -f $directorio ]; thenecho "Existe y es archivo "

elseecho "No se puede especificar el tipo de fichero"

fiexit 0