Descarga la aplicación para disfrutar aún más
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?
Compartir