PDF de programación - Shellscripts en Linux

Imágen de pdf Shellscripts en Linux

Shellscripts en Linuxgráfica de visualizaciones

Publicado el 14 de Enero del 2017
860 visualizaciones desde el 14 de Enero del 2017
253,1 KB
30 paginas
Creado hace 5a (10/10/2014)
CURSO 14146
SHELLSCRIPTS EN LINUX

Ramón M. Gómez Labrador
( ramongomez ARROBA us.es )
Octubre de 2.014

Nota importante: El presente seminario se oferta dentro del plan de formación para personal
informático de la Universidad de Sevilla para el año 2014 y toda su documentación asociada
está bajo licencia Creative Commons con reconocimiento
(http://creativecommons.org/licenses/by/4.0/deed.es).

Ediciones del curso:

1ª edición: Curso 03-55 Programación Avanzada en Shell, octubre 2.003.
2ª edición: Curso 05-08 Programación Avanzada en Shell, abril 2.005.



• La 3ª edición del curso se dividió en 2 seminarios:

◦ Seminario 06013 Programación Avanzada en Shell (línea de comandos),

septiembre 2.006.

2.006.

de comandos.

◦ Seminario 06053 Programación Avanzada en Shell (shellscripts), septiembre

• Esta 4ª edición es principalmente una actualización del seminario dedicado a la línea

2

14146 Shellscripts en Linux

ÍNDICE

1. Introducción...........................................................................................................................4
1.1. Características principales de BASH...............................................................................4
1.2. Cuándo utilizar el intérprete de mandatos........................................................................5
2. Redirecciones.........................................................................................................................6
2.1. Redirección de entrada.....................................................................................................6
2.2. Redirecciones de salida....................................................................................................6
2.3. Combinación de redirecciones.........................................................................................7
2.4. Redirección de entrada/salida..........................................................................................8
2.5. Documento interno...........................................................................................................8
2.6. Redirección de cadena.....................................................................................................9
2.7. Tuberías............................................................................................................................9
3. Variables...............................................................................................................................11
3.1. Tipos de variables...........................................................................................................11
3.1.1. Variables locales......................................................................................................11
3.1.2. Variables de entorno................................................................................................12
3.1.3. Parámetros de posición...........................................................................................13
3.1.4. Variables especiales.................................................................................................14
3.2. Matrices..........................................................................................................................15
3.3. Configuración del entorno.............................................................................................16
4. Expresiones..........................................................................................................................17
4.1. Expresiones aritméticas..................................................................................................17
4.2. Expresiones condicionales.............................................................................................19
4.2.1. Expresiones de ficheros..........................................................................................20
4.3.2. Expresiones comparativas numéricas.....................................................................21
4.3.3. Expresiones comparativas de cadenas....................................................................22
5. Entrecomillado y expansión...............................................................................................23
5.1. Entrecomillado...............................................................................................................23
5.2. Expansiones...................................................................................................................23
5.2.1. Expansión de llaves.................................................................................................24
5.2.2. Expansión de tilde...................................................................................................24
5.2.3. Expansión de parámetro o de variable....................................................................25
5.2.4. Sustitución de mandato...........................................................................................26
5.2.5. Expansión aritmética...............................................................................................27
5.2.6. Sustitución de proceso............................................................................................28
5.2.7. División en palabras................................................................................................28
5.2.8. Expansión de fichero...............................................................................................28
6. Referencias...........................................................................................................................30

3

1. Introducción.

El intérprete de mandatos 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.
Por lo tanto, un intérprete de mandatos de Unix es tanto una interfaz de ejecución de órdenes
y utilidades, como un lenguaje de programación, que admite crear nuevas órdenes –
denominadas guiones o “shellscripts”–, utilizando combinaciones de mandatos y estructuras
lógicas de control, que cuentan con características similares a las del sistema y que permiten
que los usuarios y grupos de la máquina cuenten con un entorno personalizado [2].
En Unix existen 2 familias principales de intérpretes de mandatos: los basados en el intérprete
de Bourne (BSH, KSH o BASH) y los basados en el intérprete C (CSH o TCSH).
Este curso de formación sobre programación en shell pretende ser una breve guía para el
usuario de sistemas GNU/Linux, que le permitirá comprender, ejecutar y empezar a
programar en la Shell, haciendo referencia especialmente a BASH (Bourne Again Shell) –
evolución de BSH, con características de KSH y CSH–, ya que es el intérprete de mandatos
más utilizado en distribuciones GNU/Linux e incluye un completo lenguaje para
programación estructurada y gran variedad de funciones internas.

1.1. Características principales de BASH.

Los principales características del intérprete GNU BASH [i] [1] son:

· Ejecución síncrona de órdenes (una tras otra) o asíncrona (en paralelo).
· Distintos tipos de redirecciones de entradas y salidas para el control y filtrado de la

información.

· Control del entorno de los procesos.
· Ejecución de mandatos interactiva y desatendida, aceptando entradas desde teclado o

desde ficheros..

· Proporciona una serie de órdenes internas para la manipulación directa del intérprete y

su entrono de operación.

· Un lenguaje de programación de alto nivel, que incluye distinto tipos de variables,
operadores, matrices, estructuras de control de flujo, entrecomillado, sustitución de
valores y funciones.

· Control de trabajos en primer y segundo plano.
· Edición del histórico de mandatos ejecutados.
· Posibilidad de usar una "shell" para el uso de un entorno controlado.

4

1.2. Cuándo utilizar el intérprete de mandatos.

Como se ha indicado anteriormente, una “shell” de Unix puede utilizarse como interfaz para
ejecutar órdenes en la línea de comandos o como intérprete de un lenguaje de programación
para la administración del sistema.
El lenguaje de BASH incluye una sintaxis algo engorrosa, pero relativamente fácil de
aprender, con una serie de órdenes internas que funcionan de forma similar a la línea de
comandos. Un programa o guión puede dividirse en secciones cortas, cómodas de depurar,
permitiendo realizar prototipos de aplicaciones más complejas.
Sin embargo, hay ciertas tareas que deben ser resueltas con otros intérpretes más complejos o
con lenguajes compilados de alto nivel, tales como [4]:

· Procesos a tiempo real, o donde la velocidad es un factor fundamental.
· Operaciones matemáticas de alta precisión, de lógica difusa o de números complejos.
· Portabilidad de código entre distintas plataformas.
· Aplicaciones complejas que necesiten programación estructurada o proceso

multihilvanado.

· Aplicaciones críticas para el funcionamiento del sistema.
· Situaciones donde debe garantizarse la seguridad e integridad del sistema, para

protegerlo contra intrusión o vandalismo.

· Proyectos formados por componentes con dependencias de bloqueos.
· Proceso intensivo de ficheros, que requieran accesos directos o indexados.
· Uso de matrices multidimensionales o estructuras de datos (listas, colas, pilas, etc.).
· Proceso de gráficos.
· Manipulación de dispositivos, puertos o “sockets”.
· Uso de bibliotecas de programación o de código propietario

.

5

2. Redirecciones.

Unix hereda 3 ficheros especiales del lenguaje de programación C, que representan las
funciones de entrada y salida de cada programa. Éstos son:

· Entrada estándar: procede del teclado; abre el fichero descriptor 0 (stdin) para
  • Links de descarga
http://lwp-l.com/pdf517

Comentarios de: Shellscripts en Linux (0)


No hay comentarios
 

Comentar...

Nombre
Correo (no se visualiza en la web)
Valoración
Comentarios
Es necesario revisar y aceptar las políticas de privacidad