100% encontró este documento útil (2 votos)
1K vistas14 páginas

Laboratorio 15 - Programacion de Shell Scripts

Este documento presenta una guía de laboratorio sobre shell scripts. Explica cómo crear y ejecutar scripts básicos utilizando variables, parámetros, condiciones e iteraciones. Detalla los pasos para desarrollar scripts que manejen argumentos, evalúen expresiones y usen bucles para recorrer listas y archivos. El objetivo es que los estudiantes aprendan conceptos y herramientas básicas de programación en shell script.
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd
100% encontró este documento útil (2 votos)
1K vistas14 páginas

Laboratorio 15 - Programacion de Shell Scripts

Este documento presenta una guía de laboratorio sobre shell scripts. Explica cómo crear y ejecutar scripts básicos utilizando variables, parámetros, condiciones e iteraciones. Detalla los pasos para desarrollar scripts que manejen argumentos, evalúen expresiones y usen bucles para recorrer listas y archivos. El objetivo es que los estudiantes aprendan conceptos y herramientas básicas de programación en shell script.
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd
Está en la página 1/ 14

Nro.

DD-106
Laboratorio 15 - Shell Scripts
Página 2

Alumno(s) Nota

Diego Jaime Escobedo Carrasco

Grupo C24 – A

Ciclo III

Fecha 23/11/2021

I. OBJETIVOS

○ Identificar el funcionamiento de los shell script.


○ Desarrollar scripts básicos.
○ Utilizar parámetros y variables.
○ Emplear estructuras básicas de programación.
○ Incluir interactividad en los scripts.
○ Definir menús en los scripts.

II. SEGURIDAD

Advertencia:
En este laboratorio está prohibida la manipulación de hardware, conexiones
eléctricas o de red; así como la ingestión de alimentos o bebidas.

III. NORMAS EMPLEADAS

○ Ubicar maletines y/o mochilas en el gabinete al final del aula de laboratorio o en los
casilleros asignados al estudiante.
○ Al culminar la sesión de laboratorio apagar correctamente la computadora y la
pantalla, y ordenar las sillas utilizadas.

IV. RECURSOS
○ Computadora con Vmware Workstation.
○ Máquina virtual con Ubuntu Server 18.04.

V. METODOLOGÍA PARA EL DESARROLLO DE LA TAREA


○ El desarrollo del laboratorio es grupal
○ En este laboratorio cada alumno trabajará con computadoras, monitores y teclado.

Guía de Laboratorio
Nro. DD-106
Laboratorio 15 - Shell Scripts
Página 3

VI. PROCEDIMIENTO

● Se empleará una máquina virtual con Ubuntu Server 20.04.


● El hostname del sistema operativo deberá contar con la siguiente estructura: primera
letra de su primer nombre, seguido de su apellido paterno y de las letras “-srv”. Un
nombre válido sería jdiaz-srv para alguien que se llame Juan Diaz.

NOTA
Toda captura de pantalla deberá ir acompañada del hostname de sistema operativo.

● Ingrese con su usuario principal.

VARIABLES Y ARGUMENTOS (PARÁMETROS)

1. Cree el directorio scripts dentro del directorio hogar del usuario principal y ubíquese en
él. En este directorio se definirán los scripts de este laboratorio:
$ mkdir ~/scripts
$ cd ~/scripts

2. Cree un script y ejecútelo para comprobar el valor de las variables del sistema:
● Cree el archivo de texto varSistema.sh con el siguiente código:

● Establezca el atributo de ejecución al archivo de texto anterior para convertirlo en un


script y luego ejecútelo:

$ chmod u+x varSistema.sh


$ ./varSistema.sh

Guía de Laboratorio
Nro. DD-106
Laboratorio 15 - Shell Scripts
Página 4

● Note que las variables del sistema tienen permanentemente un valor asociado.
● Si crea una variable y le asigna un valor, todo esto en la consola, ¿podrá acceder al valor
de la variable dentro de un script? Justifique su respuesta:
Si, esto es posible debido al signo de dólar este nos permite crear nuevas
variables en las cuales podemos usar los valores de home, paht y logname.

3. Cree un script y ejecútelo para comprobar el funcionamiento de variables de usuario, así


como el uso de los delimitadores de texto:

● Cree el archivo de texto varUsuario.sh con el siguiente código:

● Establezca el atributo de ejecución al archivo de texto anterior para convertirlo en un


script y luego ejecútelo:
$ chmod u+x varUsuario.sh
$ ./varUsuario.sh

● ¿Qué diferencia encuentra entre las comillas (" ") y los apóstrofes (' ')?
Como podemos observar las comillas están interpretando el valor dentro de
estas, y por otro lado los apostrofes están expresando el texto ingresado de
manera literal.

● ¿Para qué sirven los apóstrofes invertidos (` `)?

Interpreta una función de valor dentro del texto

4. Cree un script y ejecútelo para comprobar la recepción y uso de los argumentos:

Guía de Laboratorio
Nro. DD-106
Laboratorio 15 - Shell Scripts
Página 5

● Cree el archivo de texto usoArgs.sh con el siguiente código:

● Establezca el atributo de ejecución al archivo de texto anterior para convertirlo en un


script y luego ejecútelo pasándole tres argumentos:
$ chmod u+x usoArgs.sh
$ ./usoArgs.sh AQP Tecsup 2

● ¿Qué ocurre cada vez que se invoca al comando shift?

Se descarta el primer argumento ingresado.nam

NOTA
Es posible agregar secuencias de escape a los scripts para modificar el formato del texto.
Tenemos disponibles las siguientes:
● 033[0m Normal

Guía de Laboratorio
Nro. DD-106
Laboratorio 15 - Shell Scripts
Página 6

● 033[1m Negrita
● 033[5m Parpadeante
● 033[31m, 033[32m, …, 033[37m Distintos colores

Por ejemplo, la segunda línea del script podría escribirse de la siguiente manera y se
mostraría el valor de la variable en negrita:

CONDICIONES EN LOS SCRIPTS

1. Cree un script y ejecútelo para comprobar el uso de condiciones:

● Cree el archivo de texto condicion1.sh con el siguiente código:

● Establezca el atributo de ejecución al archivo de texto anterior para convertirlo en un


script y luego ejecútelo dos veces: en la primera ejecución no le pase argumentos y en
la segunda pásele varios argumentos:
$ chmod u+x condicion1.sh
$ ./condicion1.sh
$ ./condicion1.sh AQP Tecsup 2

● ¿Cómo determina el script si se pasaron argumentos?


Como vimos en la sesión de clases el Bash hace uso de las variables y funciones
existentes, script pasa las instrucciones para que se determine cuáles usar
y que argumentos trataran.

● Explique el por qué del error si es que no ingresamos espacios vacíos alrededor del los
corchetes.
El comando de igualdad tiene espacios, aunque llega a entender el resto del
código.

Guía de Laboratorio
Nro. DD-106
Laboratorio 15 - Shell Scripts
Página 7

2. Cree un script y ejecútelo para comprobar el uso de operadores condicionales


especiales:

● Cree el archivo de texto condicion2.sh con el siguiente código:

● Establezca el atributo de ejecución al archivo de texto anterior para convertirlo en un


script y luego ejecútelo dos veces: en la primera ejecución indique un nombre de archivo
que no existe, mientras que en la segunda pásele un nombre de archivo que sí existe:
$ chmod u+x condicion2.sh
$ ./condicion2.sh foo
$ ./condicion2.sh prueba.txt

● ¿Cómo podríamos comprobar si el argumento pasado es un directorio?

EVALUACIÓN DE EXPRESIONES Y BUCLES EN LOS SCRIPTS

1. Cree un script y ejecútelo para comprobar la evaluación de las expresiones:


● Cree el archivo de texto expresion1.sh con el siguiente código:

Guía de Laboratorio
Nro. DD-106
Laboratorio 15 - Shell Scripts
Página 8

● Establezca el atributo de ejecución al archivo de texto anterior para convertirlo en un


script y luego ejecútelo pasándole dos números como argumentos:
$ chmod u+x expresion1.sh
$ ./expresion1.sh 10 3

● ¿Existe alguna forma de realizar exponenciales? ¿Se puede trabajar con decimales?

Se lograría si es que usamos la función scale con un bucle.

2. Cree un script y ejecútelo para verificar los bucles numéricos:


● Cree el archivo de texto bucle1.sh con el siguiente código:

● Establezca el atributo de ejecución al archivo de texto anterior para convertirlo en un


script y luego ejecútelo:
$ chmod u+x bucle1.sh
$ ./bucle1.sh

Guía de Laboratorio
Nro. DD-106
Laboratorio 15 - Shell Scripts
Página 9

● ¿Para qué sirve la expresión $(( … ))?

Para que podamos usar el comando “expr”

3. Cree un script y ejecútelo para verificar el funcionamiento del for:


● Cree el archivo de texto bucle2.sh con el siguiente código:

Establezca el atributo de ejecución al archivo de texto anterior para convertirlo en un script y


luego ejecútelo pasando distintos argumentos cada vez:
$ chmod u+x bucle2.sh
$ ./bucle2.sh /etc/hosts /etc/resolv.conf
$ ./bucle2.sh /etc/b*
$ ./bucle2.sh /etc/[abc]*

Guía de Laboratorio
Nro. DD-106
Laboratorio 15 - Shell Scripts
Página 10

Guía de Laboratorio
Nro. DD-106
Laboratorio 15 - Shell Scripts
Página 11

Nota
En las invocaciones del bucle anterior, se genera un argumento por cada archivo /etc/c*.

● ¿Qué opción tengo que darle al comando head para imprimir todo a excepción de las
tres últimas líneas?

Se puede usar el comando llamado “sed”

EJERCICIOS PROPUESTOS

1. Sabiendo que el comando date +%k muestra la hora (formato de 24h) y el comando
date +%M muestra los minutos (0-59), desarrolle el script hora.sh que muestre la hora
en formato de 12 horas incluyendo AM o PM según corresponda:

Hora

Código

Guía de Laboratorio
Nro. DD-106
Laboratorio 15 - Shell Scripts
Página 12

Resultado

2. Cree el script bucle3.sh, basado en bucle1.sh, donde el inicio, el final y el


incremento sean pasados como argumentos:

3. Cree el script bucle4.sh, basado en bucle3.sh, donde los números pares se


muestren en negritas y los impares en formato normal:

Guía de Laboratorio
Nro. DD-106
Laboratorio 15 - Shell Scripts
Página 13

4. Cree el script bucle5.sh, basado en bucle2.sh, donde el nombre del archivo se


muestre en negritas (primer echo) y las primeras líneas del contenido (head …) se
muestren en otro color:

Guía de Laboratorio
Nro. DD-106
Laboratorio 15 - Shell Scripts
Página 14

VII. CONCLUSIONES
● Hice uso del comando man para ayudarme a comprender los comandos como head o
sed.
● Con ayuda de la grabación de clase pude acabar este laboratorio.
● Aprendí a usar los scripts y ver cómo crearlos y editarlos.
● Creo que el uso de scripts tiene mucha relación con los lenguajes de programación.
● Con la ayuda de la herramienta putty no tuve mayores inconvenientes con este
laboratorio.

VIII. OBSERVACIONES
● Tuve que buscar ayuda en páginas web para poder resolver los ejercicios planteados.
● En esta ocasión hice uso del editor de texto de nano pero me gustaría aprender a
hacerlo en vim.
● Tanto en la línea de comando en linux la letra L con el numero 1 son iguales, considero
que linux debería solucionar ese aspecto.
● El uso de scripts sirve de mucha ayuda sobre todo cuando se requieren ejercicios de
aplicación.
● Debo mejorar más con la memoria de comandos, ya que a veces me olvido el
significado de los comandos y pierdo tiempo tratando de recordarlos.

Guía de Laboratorio

También podría gustarte