Introduccion a la Teoria de Automatas Lenguajes y Computacion

Páginas: 8 (1966 palabras) Publicado: 7 de abril de 2013
IV Jornadas Sistema Operativo Linux

Programando Scripts en Bourne Shell
Andrés J. Díaz ¿?

¿Qué es un Shell?

Definición técnica:

«El shell es una parte del SO encargada de validar los comandos introducidos por parte del
usuario, para posteriormente enviar las órdenes a otra parte del sistema operativo para su ejecuci
ón.»

Definición «cutre»:

El programita que traduce lo quetecleamos en cosas que entienda el sistema operativo.

¿Qué es un Shell tipo Bourne?

Tipos de shell en UNIX:
Bourne (sh)
Stephen Bourne 1979

C (csh)
Bill Joy 1980

Korn (ksh)
David Korn 1980

¡Y Bash!
«Bourne Again Shell» (Otro shell Bourne)
Proyecto GNU
Estándar IEEE POSIX

El Bourne Shell

Dos estilos de Shell Bourne:
Estilo BSD
Estilo SysV

Pero con POCASdiferencias:
BSD:
echo -n "sinretornodelinea"

SysV:
echo "sinretornodelinea\c"

El C Shell

Novedades

Mejoras en interactividad
Expansión de tildes (~)
Expansión de llaves ({a,b,...,n})
Builtins: pushd, popd, logout...

Además...

¡Creador de VI!

Bill Joy, Univ. de Berkeley (1980)

El Shell de Korn

Novedades

Expresiones aritméticas
Historial de comandos
Más expansiones deparámetros
Vectores («Arrays»)
Alias
Variables enteras

David Korn, Bell Labs (1957)

Bourne Again Shell (BASH)

¿Otro shell?
Proyecto GNU, por lo tanto libre
Mejoras de csh y de ksh
Más funcionalidad

Mejoras con respecto a Korn Shell (ksh88)
for aritmético: for ((expr1; expr2; expr3)); do list; done
de acuerdo con POSIX
«tilde expansion»
sustitución de procesos con tuberíasexpansión del «prompt»
redirección: &> (stdout y stderr), & /dev/null

Ortogonalidad de comandos (i.e. sleep 1 |while)
BASH:
CSH:

espera por un «do ... done»
error en while y se procesa ¿sleep |?

Espupideces varias sin nombre científico ;-)
% kill -1 ‘cat foo‘
ERROR!!!! --> ‘cat foo‘: Ambiguous.

% /bin/kill -1 ‘cat foo‘
¡¡¡¡¿¿¿¿¿OK?????!!!!

¿Para qué programar en Shell?

Nosayuda en nuestra vida diaria :-)
Evitar la repetición sistemática de comandos
Personalizar utilidades

Por pura comodidad
Crear utilidades automáticas que hagan labores de mantenimiento o instalación
Autodetección de hardware

Para trastear un poco
Meterse con los que usan Perl para hacer trivialidades ;-)
Juegos para BOFHs (expulsar usuarios...)

Sentencias y comandos

Ejecutarcomandos
Llamada directa al ejecutable (/bin/ls o ls si está en el PATH)
Usando un alias
(alias ll=’ls -l’)
Mediante una variables
(LS=/bin/ls; $LS)

Separar comandos
Cada línea un comando
En la misma línea separado por punto y coma (;)

Comandos y expresiones

Listas de comandos

En el propio entorno shell: { comando1; comando2; ...; comando n }
En un subshell: ( comando1;comando2; ...; comando n )

Expresiones Aritméticas
(( expresión ))
variable=$(( expresión ))
variable=$[ expresión ]

(¡NO!)

Expresiones Condicionales
[[ expresión ]]
[ expresión ]
test expresión

«Builtins» versus Comandos

Diferencias:

Comandos son ejecutables independientes del shell
Builtins con funciones propias de shell

Builtins:
[[ ]]

Evalúa expresiones

(( ))Evaluación aritmética

:
. Sentencia vacía

Lee y ejecuta ficheros

Expresiones Aritméticas (I)

var++ var-Post-incremento y post-decremento
++var --var
Pre-incremento y pre-decremento
-+
Signos negativos y positivos

!~
**

Negación lógica y bit a bit
Exponenciación

*/%
Producto, división y módulo
+Suma y resta aritmética

Expresiones Aritméticas (II)

>
Desplazamientode bits
= < >
Comparaciones lógicas

== !=

Igualdad y no igualdad

&
Y binario (AND)

^

O-Exclusivo binario (XOR)

|
O binario (OR)
&&
Y Lógico

Expresiones Aritméticas (y III)

||
O Lógico

?:

Evaluación condicional («si en línea»)

= *= /= %= += -= = &= ^= |=
, Asignación
Separador de sentencias

[base#]n
Indicador de base numérica
i.e: 16#f --> 15

0xn,...
Leer documento completo

Regístrate para leer el documento completo.

Estos documentos también te pueden resultar útiles

  • Aplicación autómatas teoría de la computación
  • Teoria Lenguajes Y Automatas
  • Teoría De Autómatas Y Lenguajes Formales
  • Introduccion a la teoria de la computacion
  • Ejercicios teoria de automatas y lenguajes formales
  • Matematicas para la computacion Introduccion de lenguajes formales y automatas Tarea 29 de noviembre 2014
  • Teoría computación, celular autómata
  • Lenguajes Y Automatas

Conviértase en miembro formal de Buenas Tareas

INSCRÍBETE - ES GRATIS