Ejercicios Shell Script
-
Upload
ivan-ceballos -
Category
Documents
-
view
137 -
download
0
Transcript of 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
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.
#!/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 ;;
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
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)
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