Logo Studenta

UNIDAD 2 - Bash

¡Este material tiene más páginas!

Vista previa del material en texto

INFORMATICA I
Licenciatura en Ciencias de la 
Atmósfera y Meteorología Aplicada
Unidad II - Bash
BASH - Características
• Bash es un intérprete de comandos usado por 
GNU / Linux para interpretar y ejecutar comandos 
del sistema operativo.
• Es una shell de UNIX escrito por Brian Fox para el 
proyecto GNU.
• Permite ejecutar y leer archivos.
• Accede a variables de entorno del sistema.
• Maneja expresiones regulares.
• Permite declarar funciones para no repetir código.
Mi primer script Bash
• Vamos a crear nuestro primer script. Para ello en un editor de texto escribiremos lo 
siguiente y lo guardaremos con el nombre hola.sh
• A continuación iremos a la terminal, la primera vez le asignamos permisos de 
ejecución y luego lo ejecutamos con el comando:
 ./hola.sh
• La primera línea de nuestro script le indica al sistema que tiene que usar la shell 
BASH. 
• La segunda línea es un comentario, todas las líneas que comiencen por # son 
ignoradas por la máquina y nos sirven para incluir comentarios destinados a 
programadores o usuarios. 
• En la tercera línea tenemos el comando echo que sirve para imprimir texto en la 
pantalla.
Variables
• Como cualquier otro lenguaje de programación, 
necesitamos variables que nos servirán para guardar datos 
en la memoria de la computadora hasta el momento que los 
necesitemos. 
• Podemos pensar en una variable como una caja en la que 
podemos guardar un elemento (ej., un número, una cadena 
de texto, etc.)..
• Para asignar el valor a una variable simplemente debemos 
usar el signo =
Variables
• Las variables pueden tomar prácticamente cualquier 
nombre, sin embargo, existen algunas restricciones:
– Sólo puede contener caracteres alfanuméricos y guiones bajos
– El primer carácter debe ser una letra o “_” (este último solo 
reservado para casos especiales).
– No pueden contener espacios.
– Las mayúsculas y las minúsculas importan, “a” es distinto de “A”.
– Algunos nombres son usados como variables de entorno y no los 
debemos utilizar para evitar sobrescribirlas (ej.: PATH).
– De manera general, y para evitar problemas con las variables de 
entorno que siempre están escritas en mayúscula, deberemos 
escribir el nombre de las variables en minúscula.
– Además, es conveniente que demos a las variables nombres que 
más tarde podamos recordar. Si abrimos un script tres meses 
después de haberlo escrito y nos encontramos con la expresión 
“m=3.5” nos será difícil entender que hace el programa. Habría 
sido mucho más claro nombrar la variable como “media=3.5”.
Variables especiales
• El sistema tiene pre-definidas algunas variables 
especiales, como ser:
– $0 representa el nombre del script.
– $1 – $9 los primeros nueve argumentos que se pasan 
a un script en Bash.
– $# el número de argumentos que se pasan a un script.
– $@ todos los argumentos que se han pasado al script.
– $? la salida del último proceso que se ha ejecutado.
– $$ el ID del proceso del script.
Control de flujo
• Los scripts se ejecutan línea a línea hasta llegar al final, 
sin embargo, muchas veces nos interesará modificar 
ese comportamiento de manera que el programa 
pueda responder de un modo u otro dependiendo de 
las circunstancias o pueda repetir partes del código.
El bucle “for”
• El comando “for” repite la ejecución de un bloque 
por cada elemento de la lista de valores.
• La sintaxis general del “for” es:
• La lista de valores puede ser un rango numérico:
El bucle “for”
• Una serie de valores:
• o el resultado de la ejecución de un comando:
• Hay que tener en cuenta que si pasamos un 
listado de valores pero lo ponemos 
entrecomillado, se lo enterá como un única 
línea:
El bucle “for”
• Un ejemplo simple de for sería:
• Pruébenlo a ver que les da como resultado!!
El condicional “if”
• Si queremos condicionar la ejecución de un bloque usamos 
“if”.
• La sintaxis general del “if” es:
• También se puede especificar qué hacer si la condición no 
se cumple:
El condicional “if”
• Incluso se pueden añadir más condiciones 
concatenando más if:
Condicionales con números
operador significado
-lt menor que (<)
-gt mayor que (>)
-le menor o igual que (<=)
-ge mayor o igual que (>=)
-eq igual (==)
-ne no igual (!=)
• Al comparar números 
podemos realizar las 
siguientes operaciones:
Condicionales c/cadenas de texto
• Al comparar cadenas de texto podemos 
realizar las siguientes operaciones:
operador significado
=
igual, las dos cadenas de 
texto son exactamente 
idénticas
!=
no igual, las cadenas de 
texto no son exactamente 
idénticas
< es menor que (en orden alfabético ASCII)
> es mayor que (en orden alfabético ASCII)
-n la cadena no está vacía
-z la cadena está vacía
Condicionales c/cadenas de texto
• También podemos hacer comparaciones 
haciendo uso de wildcards:
Operaciones con cadenas de texto
• Extraer subcadena:
Operaciones con cadenas de texto
• Borrar subcadena:
Operaciones con cadenas de texto
• Reemplazar subcadenas:
Operaciones aritméticas
• Se pueden utilizar:
"+": Para sumar valores.
"-": Para restar valores.
"*": Para multiplicar valores.
"/": Para dividir valores.
"%": Para calcular el resto de una división.
• Comando let:
Para guardar el valor de una operación dentro de una variable usamos el comando 
let. El comando evalúa cada argumento como una expresión aritmética.
• Comando expr:
Sirve para resolver expresiones matemáticas, con él podemos calcular lo que 
necesitemos. Por ejemplo, si queremos que nos aparezca el resultado de 1 + 2 * 8 
/ 3 ponemos:
expr 1 + 2 \* 8 / 3
Hay que dejar un espacio en blanco entre cada argumento o variable para que 
funcione el comando.
Operaciones lógicas
• Evaluación de operaciones aritméticas:
"-lt": Menor que
"-le": Menor o igual que
"-eq": Igual que
"-ge": Mayor o igual que
"-gt": Mayor que
"-ne": Distinto que
Práctica
• Te propongo los siguientes ejercicios sencillos 
para practicar el desarrollo de programas Bash:
– Leer la lista de archivos de un directorio
– Mostrar la línea de un archivo de texto que 
contenga una determinada cadena de texto en 
cualquier posición.
– Invertir el formato de una fecha, pasándola por ej. 
de formato dd/mm/aaaa a aaaa/mm/dd
– Convertir un número binario en decimal.
– Convertir un número decimal en binario.
Más info
• Para obtener mayor información sobre Bash 
visitar los siguientes sitios:
– https://likegeeks.com/es/script-de-bash-tutorial/
– https://www.atareao.es/tutorial/scripts-en-bash/
matematicas-en-bash/
– https://youtu.be/Z7S6Mvl9hHA
– http://escueladeprogramacion.es/snippets/bash/
Comparadores.html
– http://trajano.us.es/~fjfj/shell/shellscript.htm
https://likegeeks.com/es/script-de-bash-tutorial/
https://www.atareao.es/tutorial/scripts-en-bash/matematicas-en-bash/
https://www.atareao.es/tutorial/scripts-en-bash/matematicas-en-bash/
https://youtu.be/Z7S6Mvl9hHA
http://escueladeprogramacion.es/snippets/bash/Comparadores.html
http://escueladeprogramacion.es/snippets/bash/Comparadores.html
http://trajano.us.es/~fjfj/shell/shellscript.htm
Preguntas?

Continuar navegando

Materiales relacionados

560 pag.
curso-de-programacion-cc---fco-javier-ceballos

Escola Municipal Getulio Vargas

User badge image

Alicia Castillo

168 pag.
Fundamentos de Informática

SIN SIGLA

User badge image

Omar Castellanos