Está en la página 1de 6

Ejercicios Shell

1. Elaborar un scrip-shell que crea un arreglo de n elementos donde va a guardar los


nombres de ciudades colombianas. Después imprimirá el arreglo por la salida estándar.

# shell para trabajar con arreglos


#
clear
i=0
echo " Digite el tamaño del arreglo que quiere crear"
read elementos
while (test $i -lt $elementos)
do
echo " "
echo " "
echo " Creando el elemento $i del arreglo ciudades colombianas"
echo " "
echo " "
echo " Digite la ciudad "
read ciudad
array[$i]=$ciudad
i=`expr $i "+" 1`
done
echo ${array[*]}
Nota: Para ejecutar el programa con arreglos se debe hacer de la siguiente forma

source Nombredelprograma

2. Elabore un script-shell que imprima por consola: Tamaño del arreglo


Elementos del arreglo
Índices del arreglo
Elementos e índices del arreglo

#!/bin/bash
array=(uno dos tres cuatro [5]=cinco [9]=nueve)
echo "Tamaño del arreglo: ${#array[*]}"
echo “Elementos del arreglo: “
for ítem in ${array[*]}
do
printf “ %s\n” $item
done
echo "Indices del arreglo: "
for index in ${!array[*]}
do
printf " %d\n" $index
done
echo "Elementos e indices del arreglo: "
for index in ${!array[*]}
do
printf "%4d: %s\n" $index ${array[$index]}
done

3. Elaborar un script-shell que permita la inscripción y listas


de los candidatos a las diferentes entes que gobiernan la
UPC: Consejo Superior CS
Consejo Académico CA
Consejo de Facultad CF
Bienestar Estudiantil BE

#!/bin/bash
#Shell que produce lista de los aspirantes a los diferentes entes
# que manejan la UPC: Consejo Superior Universitario CS
# Consejo Académico CA, Consejo de Facultad CF y Representantes ante
# el Bienestar Estudiantil BE
clear
while true
do
echo " "
echo " "
echo " "
echo " UPC"
echo " Elecciones universitarias"
echo “ "
echo " Menu Principal"
echo " "
echo " 1. Inscripcion de candidatos"
echo " 2. Eliminación candidatos"
echo " 3. Listado candidatos CS"
echo " 4. Listado candidatos Consejo Academico"
echo " 5. Listado candidatos Consejo Facultad"
echo " 6. Listado candidatos Bienestar Estudiante"
echo " 7. Salir"
echo " "
echo " Digite opcion desea...\c"
read opcion
case $opcion in

1) echo "Digite candidatos: Apellidos Nombres CS/CA/CF/BE"


read candidato
echo $candidato >> archivo;;
2) echo "Digite Apellido candidato a eliminar"
read candidato
grep -v $candidato archivo > temporal
mv temporal archivo;;
3) grep -i "CS" archivo > temporal
sort temporal
rm temporal;;
4) grep -i "CA" archivo > temporal
sort temporal
rm temporal;;
5) grep -i "CF" archivo > temporal
sort temporal
rm temporal;;
6) grep -i "BE" archivo > temporal
sort temporal
rm temporal;;
7) exit;;
*) echo " Opcion invalida digite de nuevo";;
esac

read enter
clear
done

4. Script-shell que muestra el manejo de funciones.

#!/bin/bash
# Script shell calculos matematicos usando conceptos funciones
#
potencia ()
{
i=1
echo "Digite nro base"
read base
cal=$base
echo "Digite nro exponente"
read exponente
while (test $i -lt $exponente)
do
cal=`expr $cal "*" $base`
i=`expr $i "+" 1`
done
echo "El nro $base elevado a la potencia $exponente = $cal"
}
factorial ()
{
i=1
echo "Digite nro para calcular su factorial"
read nro
fact=$nro
while (test $i -lt $nro)
do
fact=`expr $fact "*" $i`
i=`expr $i "+" 1`
done

echo " El nro $nro tiene de factorial = $fact"


}
sumador ()
{
i=1
echo "Digite el nro de la sumatoria"
read nro
suma=$nro
while (test $i -lt $nro)
do
suma=`expr $suma "+" $i`
i=`expr $i "+" 1`
done
echo "La sumatoria de los $nro = $suma"
}
fibonacci ()
{
anterior=1
actual=2
cal=1
echo "Digite el nro hasta donde se van a calcular fibonacci"
read fibo
echo " "
echo "Lista nro fibonacci:"
while (test $fibo -ge $cal)
do
cal=`expr $actual "+" $anterior`
anterior=$actual
actual=$cal
echo $cal
done
}

# Programa principal
while true
do
clear
echo " "
echo " "
echo " Menu calculo"
echo " "
echo " Opciones:"
echo “ 1. Potencia”
echo “ 2. Factorial”
echo “ 3. Sumatoria"
echo " 4. Fibonacci"
echo “ 5. Terminar"
echo " "
echo -e “ Digite opcion...\c"
read opcion
case $opcion in
1) potencia;;
2) factorial;;
3) sumador;;
4) fibonacci;;
5) exit;;
*) echo " Error digite de nuevo"
read nulo
esac
echo " Para terminar digite ctl-Z"
read nulo
done
# final programa
Importante: Para ejecutar los script que trabajan con arreglos se
deben realizar de la siguiente forma:
./ nombre del script

5. Elabore un scrip-shell que cuente los votos de cada candidato y


el total de votos a la presidencia de la Republica periodo 2022
– 2026

6. Leer los datos de un archivo de entrada que contiene los


estudiantes de todas las carreras de la UPC, crear un archivo de
salida con solo los estudiantes que estudian ingeniería de
sistema.

#!/bin/bash
#
#Script Shell que produce de salida un archivo con los meros # #
#estudiantes de ing. Sistemas a partir de un archivo de entrada
# donde se encuentran todos los estudiantes de la UPC
# Código de carrera de Ingeniería de sistemas = SS400
# La configuración del archivo entrada: código carrera, código
#estudiente, Nombre del estudiante
#
clear
while read linea
do
grep –i “SS400” inputFile >> outputFile
done < inputFile
echo “ El contenido del archivo generado es el siguiente: “
more outputFile

7. Tenemos el siguiente archivo de entrada llamado: fileInput cuyo registro contiene los siguientes
campos: código estudiante UPC, nombre, parcial 1, parcial 2 y parcial 3. Elabore un script Shell que
calcule la nota definitiva sabiendo que le primer parcial vale 30%, el segundo el 30% y el tercero el
40%.

11111, Aldana Osorio Jorge, 3, 4, 5

22222, Calderón Martinez Juana, 4, 1, 3

33333, Fajardo Cardona Julio,1, 4, 3

44444, Torres Mendoza Tulio Enrique, 1, 2, 3


#!/bin/bash

# script bash que calcula nota definitiva estudiantes UPC

clear

while read linea

do

awk –F, ‘{print NR “ “ $1 “ “ $2 “ “ $3 “ “ $4 “ “ $5 “ “ ($3 * 30)/100 + ($4 * 30)/100 + ($5 * 40)/100}’

done < fileInput

Nota: el parámetro $0 se refiere a toda la línea o registro

Nota: el parámetro –F, le estamos diciendo que el separador de campos es coma (,)

NR Numera las filas.

También podría gustarte