INSTITUTO TECNOLÓGICO SUPERIOR JUAN DE VELASCO
CARRERA DE TECNOLOGÍA EN DISEÑO Y MANTENIMIENTO DE REDES
PRÁCTICA No. 10
1. DATOS GENERALES:
NOMBRE: CODIGO(S):
Cristian Guerrero 060483515‐7
FECHA DE REALIZACIÓN: 29/02/2020 FECHA DE ENTREGA: 02/03/2020
1
INSTITUTO TECNOLÓGICO SUPERIOR “JUAN DE VELASCO”
Av. Chimborazo 11‐56 y Cuba
Telf: 2942 077
2. OBJETIVO(S):
2.1. GENERAL
Realizar una correcta programación en scripts
2.2. ESPECÍFÍCOS:
Conocer un poco más sobre scripts.
Conocer las estructuras de control.
Saber los controles de entrada y salida de datos.
3. MARCO TEORICO
Introducción a los Script
¿Qué es el Scripting?
Un script es un programa escrito para un entorno en tiempo de ejecución (run-time
environment), con el objetivo de automatizar la ejecución de una o varias tareas.
El primer lenguaje de scripting se remonta a los años 60. En aquella época los llamaban
“job control languajes” o lenguajes de control de tareas. Y es que los scripts eran
simplemente una lista de comandos para ahorrar a las personas tener que introducirlos
manualmente cada vez que querían realizar una misma tarea.
Cada script se presenta en forma de un documento de texto que contiene una lista de
instrucciones que deben ser ejecutadas. La naturaleza de los scripts nos permite escribirlos
y editarlos con un simple editor de texto, como puede ser Gedit mismo, en el caso de
GNU/Linux.
Ventajas de Utilizar Scripts
Los shell scripts son típicamente utilizados para la manipulación de archivos, ejecución de
programas o acciones del sistema, impresión de texto, etc. El objetivo principal, como ya
he comentado, es la automatización de tareas. A continuación te presento algunos ejemplos
de aplicación práctica de los scripts:
Inicializar una tarea al “boot time” del sistema operativo, de manera que no tengas
que hacerlo tu manualmente.
Abrir o cerrar múltiples aplicaciones de golpe.
2
ING. PAUL CAMPOS
INSTITUTO TECNOLÓGICO SUPERIOR “JUAN DE VELASCO”
Av. Chimborazo 11‐56 y Cuba
Telf: 2942 077
Analizar patrones en archivos de texto, extraer información, etc.
ESTRUCTURAS DE CONTROL
La shell tiene un conjunto de estructuras de control, que son muy parecidos a otros
lenguajes de programación. En las siguientes secciones, las sentencias son las series de
comandos para ejecutar cuando, mientras o hasta que se cumpla la condición.
La sentencia if–else es una sentencia para la toma de decisiones de awk.
La parte else es opcional.
Cuando solo hay una instrucción, las llaves “{ }” son opcionales.
3
ING. PAUL CAMPOS
INSTITUTO TECNOLÓGICO SUPERIOR “JUAN DE VELASCO”
Av. Chimborazo 11‐56 y Cuba
Telf: 2942 077
Después de darle los permisos de ejecución, ejecutamos el script:
La sentencia for es más conveniente para contar las iteraciones de un bucle. Este comando
de estructura de control contiene dos sintaxis:
Cuando solamente hay una instrucción, las llaves son opcionales.
4
ING. PAUL CAMPOS
INSTITUTO TECNOLÓGICO SUPERIOR “JUAN DE VELASCO”
Av. Chimborazo 11‐56 y Cuba
Telf: 2942 077
Copia y ejecuta este script para ver el resultado, no te olvides de darle permiso de ejecución.
Más adelante trataremos las tablas asociativas con for.
La sentencia while es la sentencia de bucle más simple de awk. Ejecuta repetidamente una
sentencia mientras una condición sea cierta.
Copia este ejemplo y ejecútalo para ver el resultado.
5
ING. PAUL CAMPOS
INSTITUTO TECNOLÓGICO SUPERIOR “JUAN DE VELASCO”
Av. Chimborazo 11‐56 y Cuba
Telf: 2942 077
El bucle do es una variación de la sentencia de bucle while. El bucle do ejecuta
la instrucción al menos una vez, después repite la instrucción mientras la condición siga
evaluándose como cierta.
Al ejecutar este script obtenemos:
Imprime cada registro de entrada 10 veces. No es un ejemplo muy realista, ya que
un while ordinario podría haber hecho lo mismo.
Haz tus propios experimentos, por ejemplo, una tabla de multiplicar…
La sentencia break permite interrumpir el bucle for, while o do–while.
6
ING. PAUL CAMPOS
INSTITUTO TECNOLÓGICO SUPERIOR “JUAN DE VELASCO”
Av. Chimborazo 11‐56 y Cuba
Telf: 2942 077
Lo ejecutamos…
La sentencia continue, al igual que break, se usa solamente dentro de un
bucle for, while o do–while. Lo que hace es saltarse todas las sentencias que falten por
ejecutarse dentro del cuerpo del bucle y volver a chequear automáticamente
la condición del bucle. Contrasta con la sentencia break, en que ésta produce directamente
un salto fuera del bucle.
Control de entrada y salida de datos
Frecuentemente un programa necesitará obtener información desde, por ejemplo, un
teclado, o bien enviará la información a un destino, por ejemplo a una pantalla. La
comunicación entre el origen de cierta información y el destino se realiza mediante
un flujo de información (stream).
7
ING. PAUL CAMPOS
INSTITUTO TECNOLÓGICO SUPERIOR “JUAN DE VELASCO”
Av. Chimborazo 11‐56 y Cuba
Telf: 2942 077
Los streams más utilizados para introducir y sacar datos son cin y cout respectivamente.
Para la utilización de dichos streams es necesario incluir, al comienzo del programa, el
archivo iostream.h en el que están definidos sus prototipos:
donde iostream proviene de input-output-stream (flujo de entrada/salida).
Cuando un programa C++ se ejecuta, se crean automáticamente tres flujos identificados
por estos objetos:
1. Un flujo desde la entrada estándar (teclado): cin.
2. Un flujo hacia la salida estándar (consola): cout.
3. Dos flujos hacia la salida estándar de error (consola): cerr y clog.
El flujo cin es un objeto de la clase istream y los flujos cout, cerr y log son objetos de la
clase ostream.
Flujos de salida
El stream o flujo de salida cout imprime en la unidad de salida (el monitor, por defecto), el
texto, las constantes y variables que se indiquen. Para poder insertar datos en un stream es
necesario utilizar el operador de inserción (<<). Así, la forma general de utilizar el flujo de
salida cout se puede estudiar viendo su prototipo:
cout << “texto” << variables o expresiones << ...;
Explicación: El objeto cout imprime el texto contenido entre las comillas tal y como está
escrito. Entre las comillas se pueden incluir palabras reservadas (sin que C++ las interprete
como tales) y las secuencias de escape, las cuales C++ ejecuta y no escribe. Separados
por el operador (<<) se pueden incluir variables y/o expresiones (incluso las creadas por el
usuario si el operador (<<) ha sido sobrecargado) que cout es capaz de interpretar
correctamente e imprimirá en pantalla su valor.
Flujos de entrada
Cuando un programa define un flujo de entrada, por ejemplo el definido por el objeto cin de
la clase istream, El stream o flujo cin es análoga en muchos aspectos a cout, y se utiliza
para leer datos de la entrada estándar (que por defecto es el teclado). Junto con cin,
también es necesario utilizar el operador de extracción (>>). Así, la forma general de utilizar
este flujo es la siguiente:
8
ING. PAUL CAMPOS
INSTITUTO TECNOLÓGICO SUPERIOR “JUAN DE VELASCO”
Av. Chimborazo 11‐56 y Cuba
Telf: 2942 077
Explicación:
El flujo cin almacena en las variables los datos introducidos por el teclado, interpretando el
final de cada una al encontrar un espacio o un final de línea. Se puede ver la ventaja de los
operadores propios de C++ para la extracción de datos de consola, y es el hecho de que
se evita el chequeo de compatibilidad de entre las variables. Es decir que la variable1 puede
ser tipo int y la variable2 tipo double.
4. CONCLUSIONES Y RECOMENDACIONES:
CONCLUSIONES:
Un script es un programa escrito para un entorno en tiempo de ejecución con el
objetivo de automatizar la ejecución de una o varias tareas.
Las estructuras de control es un conjunto muy parecidos a otros lenguajes de
programación.
Los streams más utilizados para introducir y sacar datos son cin y cout
RECOMENDACIONES:
Realizar una búsqueda más profunda sobre los scripts si el concepto no está muy
claro.
5. WEBGRAFÍA:
https://computernewage.com/2018/09/16/scripting‐linux‐introduccion/
https://baulderasec.wordpress.com/programacion/programacion‐con‐linux/2‐
programacion‐shell/2‐3‐3‐sintaxis‐shell/2‐3‐3‐3‐estructuras‐de‐control/
https://baulderasec.wordpress.com/desde‐la‐consola/shell‐en‐unixlinux‐sh‐ksh‐
bash/8‐el‐lenguaje‐de‐programacion‐awk/8‐6‐estructuras‐de‐control/
https://baulderasec.wordpress.com/programacion/cc/entrada‐y‐salida‐
estandar/entrada‐y‐salida/
9
ING. PAUL CAMPOS