Documentos de Académico
Documentos de Profesional
Documentos de Cultura
INFORME
DATOS GENERALES:
1
INSTITUTO SUPERIOR TECNOLÓGICO “JUAN DE VELASCO”
Av. Chimborazo 11-56 y Cuba
Telf: 2942 077
Haciendo uso de un editor de texto (como por ejemplo vim), escribamos lo siguiente
dentro de primerscript.sh:
#!/bin/bash
# La fecha actual
FECHA=$(date +%d/%m/%Y)
# Mensaje
echo "Hoy es $FECHA. Hay $SESIONES sesiones abiertas"
Hagamos algunas aclaraciones:
La primera línea del script siempre debe indicar cuál es la shell con la que deseamos
ejecutar el mismo. En la mayoría de las ocasiones elegiremos a Bash. La ruta
absoluta a la shell debe ir precedida por los caracteres #!.
Salvo la primera línea del script, todas aquellas que comiencen con un signo
numeral son comentarios informativos. Los usaremos para explicar el propósito de
los comandos que siguen, con el propósito de aclarar el funcionamiento de nuestro
script a otra persona que lo examine en el futuro (¡y para recordárnoslo a nosotros
mismos también!). Estas líneas no son interpretadas por la shell durante la ejecución
del script.
Para evitar tener que repetir un mismo comando en varias partes del script, y para
facilitar su lectura también, a menudo querremos guardar el resultado en una
variable. De esa manera, si deseamos cambiar el comando en el futuro, solamente
tendremos que hacerlo en el lugar en donde declaramos la variable. En el ejemplo
de arriba guardamos la salida de los comandos que indican la fecha actual y la
cantidad de sesiones de usuario abiertas en las variables FECHA y SESIONES,
2
ING. PAUL CAMPOS
INSTITUTO SUPERIOR TECNOLÓGICO “JUAN DE VELASCO”
Av. Chimborazo 11-56 y Cuba
Telf: 2942 077
chmod +x primerscript.sh
Y ejecutémoslo anteponiendo un punto y una barra al nombre del script (esto es
necesario para indicar que primerscript.sh es un archivo ejecutable presente en el
directorio actual, donde por lo general el sistema no espera encontrar archivos de ese
tipo):
./primerscript.sh
El resultado puede verse en la Fig 1:
2. ESTRUCTURAS DE CONTROL
if/else: Ejecuta una serie de comandos dependiendo si una cierta condicion se cumple
o no.
for: Ejecuta una serie de comandos un numero determinado de veces.
while: Ejecuta una seria de comandos mientras que una determinada condicion sea
cumpla.
until: Ejecuta una serie de comandos hasta que una determinada condicion se
cumpla.
case: Ejecuta una o varias listas de comandos dependiendo del valor de una variable.
select: Permite seleccionar al usuario una opcion de una lista de opciones en un
menu.
3
ING. PAUL CAMPOS
INSTITUTO SUPERIOR TECNOLÓGICO “JUAN DE VELASCO”
Av. Chimborazo 11-56 y Cuba
Telf: 2942 077
------------------------------------------
------------------------------------------
4
ING. PAUL CAMPOS
INSTITUTO SUPERIOR TECNOLÓGICO “JUAN DE VELASCO”
Av. Chimborazo 11-56 y Cuba
Telf: 2942 077
------------------------------------------
si es un directorio)
Podemos combinar varias condiciones con los símbolos '&&' (AND) y '||' (OR), y
negar una condición con '!'. Unos ejemplos mas adelante aclararan como
utilizarlos.
If/Else
La sintaxis de esta construcción es la siguiente:
if "condicion"
5
ING. PAUL CAMPOS
INSTITUTO SUPERIOR TECNOLÓGICO “JUAN DE VELASCO”
Av. Chimborazo 11-56 y Cuba
Telf: 2942 077
then
"comandos"
[elif "condicion"
then
"comandos"]
[else
"comandos"]
fi
#!/bin/bash
DIRECTORIO="/tmp/test"
COMANDO="/bin/mkdir $DIRECTORIO"
if $COMANDO
then
else
fi
6
ING. PAUL CAMPOS
INSTITUTO SUPERIOR TECNOLÓGICO “JUAN DE VELASCO”
Av. Chimborazo 11-56 y Cuba
Telf: 2942 077
La pantalla
Como ya ha visto, todos los programas curses deben empezar con initscr y acabar
con endwin. Estas son las definiciones de sus archivos de cabecera:
Leer la pantalla
Puede leer los caracteres de la pantalla, a pesar de que esta opción no se suele
usar porque es más fácil seguir la pista de lo que se ha escrito. Si fuese necesario,
puede hacerlo con las siguientes funciones:
7
ING. PAUL CAMPOS
INSTITUTO SUPERIOR TECNOLÓGICO “JUAN DE VELASCO”
Av. Chimborazo 11-56 y Cuba
Telf: 2942 077
La función inch debería estar disponible siempre, pero las funciones instr y innstr no
siempre se aceptan. La función inch envía un carácter y la información sobre su
atributo a partir de la ubicación actual del cursor en la pantalla. Tenga en cuenta
que inch no envía un carácter, sino un chtype, mientras que instr e innstr escriben
matrices de chars.
8
ING. PAUL CAMPOS
INSTITUTO SUPERIOR TECNOLÓGICO “JUAN DE VELASCO”
Av. Chimborazo 11-56 y Cuba
Telf: 2942 077
9
ING. PAUL CAMPOS
INSTITUTO SUPERIOR TECNOLÓGICO “JUAN DE VELASCO”
Av. Chimborazo 11-56 y Cuba
Telf: 2942 077
Cómo funciona
10
ING. PAUL CAMPOS
INSTITUTO SUPERIOR TECNOLÓGICO “JUAN DE VELASCO”
Av. Chimborazo 11-56 y Cuba
Telf: 2942 077
4. WEBGRAFÍA:
http://www.ub.edu/stat/docencia/bioinformatica/introbiocomputacio/Linux/Scripts_de_S
hell_en_Linux.pdf
https://computernewage.com/2018/09/16/scripting-linux-introduccion/
https://e-mc2.net/es/bash-iv-estructuras-de-control-y-bucles
https://baulderasec.wordpress.com/programacion/programacion-con-linux/6-gestion-de-
pantallas-de-texto-con-curses/el-control-basico-de-entradas-y-salidas/
11
ING. PAUL CAMPOS