Publicado el 11 de Octubre del 2018
7.132 visualizaciones desde el 11 de Octubre del 2018
313,4 KB
41 paginas
Creado hace 6a (01/01/2018)
Programación BASH
Este manual trata sobre la programación de shellscripts con el
intérprete de comandos BASH (Bourne Again Shell). Pretende ser un
guía para el usuario de Linux, que le permitirá comprender, ejecutar
y empezar a programar en la Shell, haciendo referencia
especialmente a BASH, ya que es el intérprete de comandos más
utilizado en Linux e incluye un completo lenguaje para
programación estructurada y gran variedad de funciones internas.
Programación BASH by Rafael Lozano is licensed under a Creative Commons Reconocimiento-
NoComercial-CompartirIgual 3.0 España License.
Tabla de contenidos
Tabla de contenido
1 Introducción........................................................................................................................................1
1.1 Edición y ejecución de un script..............................................................................................................1
1.2 Comentarios..................................................................................................................................................3
1.3 El comando interno echo..........................................................................................................................3
1.4 El primer script.............................................................................................................................................3
1.5 El comando exit............................................................................................................................................4
2 Variables...............................................................................................................................................4
2.1 Variables locales...........................................................................................................................................5
2.2 Variables de entorno..................................................................................................................................5
2.3 Parámetros de posición.............................................................................................................................6
2.4 Variables especiales....................................................................................................................................7
2.5 Asignar valor de variables desde teclado..............................................................................................8
2.6 Variables con tipo........................................................................................................................................9
2.7 Matrices.......................................................................................................................................................11
2.8 Expansión de variables usando llaves.................................................................................................11
3 Redirección........................................................................................................................................12
3.1 Redirección de entrada............................................................................................................................13
3.2 Redirección de salida................................................................................................................................13
3.3 Tuberías.......................................................................................................................................................14
4 Entrecomillado y expansión..........................................................................................................14
4.1 Entrecomillado...........................................................................................................................................15
4.2 Expansión....................................................................................................................................................15
4.2.1 Expansión de llaves en nombres de fichero.....................................................................................16
4.2.2 Expansión de nombre de archivo con metaracteres.....................................................................16
4.2.3 Expansión de tilde................................................................................................................................... 16
4.2.4 Expansión de parámetro o de variable..............................................................................................17
4.2.5 Sustitución de comando........................................................................................................................19
4.2.6 Expansión aritmética............................................................................................................................... 19
5 Expresiones.......................................................................................................................................20
5.1 Expresiones aritméticas...........................................................................................................................20
5.2 Expresiones condicionales......................................................................................................................22
5.2.1 Expresiones de ficheros.........................................................................................................................22
5.2.2 Expresiones comparativas numéricas................................................................................................23
5.2.3 Expresiones comparativas de cadenas..............................................................................................24
6 Programación estructurada...........................................................................................................24
6.1 Lista de comandos....................................................................................................................................24
6.2 Estructuras condicionales y selectivas.................................................................................................24
6.2.1 Estructuras condicionales...................................................................................................................... 25
6.2.2 Estructura selectiva................................................................................................................................. 27
6.3 Bucles...........................................................................................................................................................28
Índice I
6.3.1 Bucle for..................................................................................................................................................... 28
6.3.2 Bucle while y until.................................................................................................................................... 30
6.3.3 La estructura select................................................................................................................................. 32
7 Funciones...........................................................................................................................................33
8 Configuración del entorno.............................................................................................................35
9 Bibliografía.........................................................................................................................................37
Índice II
Rafael Lozano
Programación BASH
Programación BASH
1 Introducción
El intérprete de comandos o shell es la interfaz principal entre el usuario y el sistema,
permitiéndole a aquél interactuar con los recursos de éste. El usuario introduce sus órdenes, el
intérprete las procesa y genera la salida correspondiente.
El intérprete de comandos puede ser usado en modo interactivo o no interactivo. En modo
interactivo el usuario teclea comandos, los cuales se ejecutan y producen una salida, mientras que en
modo no interactivo los comandos se leen desde un fichero. En este último caso, el fichero que
contiene los comandos a ejecutar se conoce como script o shellscript. Sin embargo, para construir un
script no solo se pueden emplear comandos del sistema operativo, sino también otros que se
emplean en exclusiva en scripts y que no se pueden usar fuera de ellos.
El intérprete de comandos por defecto en los sistemas GNU/Linux es Bash (Bourne Again Shell)
el cual provee funcionalidad para ejecutar comandos del sistema operativo y para crear nuevos
comandos combinando los comandos con estructuras de programación y expresiones. Por lo tanto,
un intérprete de comandos de GNU/Linux es tanto una interfaz de ejecución de comandos y
utilidades, como un lenguaje de programación, que admite crear nuevos comandos, denominados
guiones o shellscripts, utilizando combinaciones de comandos y estructuras lógicas de control, que
cuentan con características similares a las del sistema.
1.1 Edición y ejecución de un script
Un script o guión interpretado por BASH es un fichero de texto normal que consta de una serie
de comandos del sistema operativo, estructuras de control y expresiones que se ejecutan en
secuencia. Como cualquier otro programa, el usuario debe tener permiso de ejecución en el fichero
del script, y se lanza tecleando su ruta absoluta junto con sus opciones y argumentos. Asimismo,
como veremos más adelante,, si el programa se encuentra en un directorio incluido en la variable de
entorno PATH , sólo se necesita teclear el nombre, sin necesidad de especificar la ruta.
El proceso completo de edición y ejecución de un
Comentarios de: Programación Bash (0)
No hay comentarios