You are on page 1of 6

Ejercicios Shell Script Bsicos

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 parmetro, me muestre el tamao. 3. Realice un script que al pasarle la ruta de un directorio por parmetro, 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 nmero del 1 al 5, me muestre en pantalla el nmero 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 nmero 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 parmetros, verifique si el archivo existe o no, y que adems verifique si es una carpeta o un archivo. Debe escribir el mensaje informando el resultado

SOLUCION

1. #!/bin/bash directorio1=$1 directorio2=$2 if [ $# -ne 2 ]; then echo "Necesita introducir los parmetros <ruta_dir1> <ruta_dir2>" echo "Use: bash $0 <ruta_dir1> <ruta_dir2>" exit fi if [ ! -e $directorio1 -a ! -e $directorio2 ]; then echo "Los ficheros $directorio1 o $directorio2 no son directorios o no existen" else for i in $directorio1 ; do cp -a $i* $directorio2 done fi

2. #!/bin/bash directorio=$1 if [ $# -ne 1 ]; then echo "Necesita introducir el parmetro <ruta_dir>" echo "Use: bash $0 <ruta_dir>" exit fi if [ ! -e $directorio ]; then echo "El fichero $directorio no existe" else echo "El tamao del fichero es: " du -sh $directorio echo " " fi exit 0 3.

#!/bin/bash directorio=$1 if [ $# -ne 1 ]; then echo "Necesita introducir el parmetro <ruta_dir>" echo "Use: bash $0 <ruta_dir>" exit fi if [ ! -e $directorio ]; then echo "El fichero $directorio no es directorio o no existe" else echo "Los siete primeros ficheros son: " ls $directorio | head -7 echo " " fi 4. #!/bin/bash directorio=$1 if [ $# -ne 1 ]; then echo "Necesita introducir el parmetro <directorio>" echo "Use: $0 <directorio>" exit fi if [ ! -e $directorio ]; then echo "El directorio $directorio no existe" else echo "Estos son los ficheros del directorio: " ls -l $directorio echo " " fi exit 0

5. #!/bin/bash numero=$1 case $numero in 1) echo "UNO" exit 0 ;;

2) echo "DOS" exit 0 ;; 3) echo "TRES" exit 0 ;; 4) echo "CUATRO" exit 0 ;; 5) echo "CINCO" exit 0 ;; *) echo "Verifique parmetro" echo "Utilice: bash $0 <un_numero_de_1_a_5>" exit 0 ;; esac

6. #!/bin/bash echo "Clculo del rea de un cuadrado" echo "Introduzca el valor del lado del cuadrado:" read lado cuadrado=$[lado*lado] echo "El valor del rea es: $cuadrado " exit 0

7. #!/bin/bash echo "****************Facturacin***************" echo "Introduzca el valor del primer artculo" read art1 echo "Introduzca el valor del segundo artculo" read art2 echo "Introduzca el valor del tercer artculo" read art3

subtotal=$(expr "scale=2; $art1+$art2+$art3" | bc) porcentaje=0.10 propina=$(expr "scale=2; $subtotal*$porcentaje" | bc) total_general=$(expr "scale=2; $propina+$subtotal" | bc) echo echo echo exit "SUBTOTAL: $subtotal" "PROPINA MESERO: $propina" "TOTAL GENERAL: $total_general" 0

8. #!/bin/bash echo "*************Salario***************" echo "Ingrese la cantidad de horas trabajadas: " read horast echo "Ingrese el valor de la hora: " read valorh porcentaje=0.50 aumento=$(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" fi exit

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

desc30=$(expr "scale=3;($salario-($salario*$treintap))" | bc) #Esto #echo #echo #echo es para probar si la operacion aritmetica es correcta "$desc10" "$desc20" "$desc30"

if [ $salario -le 1000000 ]; then echo "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 ]; then echo "El salario es: $desc30" else echo "El salario queda sin cambios: $salario" fi exit 0 10. #!/bin/bash directorio=$1 if [ ! -e $directorio ]; then echo "El archivo $directorio NO existe" elif [ -e $directorio -a -d $directorio ]; then echo "El archivo existe y es un directorio" elif [ -e $directorio -a -f $directorio ]; then echo "Existe y es archivo " else echo "No se puede especificar el tipo de fichero" fi exit 0

You might also like