Scripting: Bash
Sistemas Operativos
http://faqoperativos.com.ar/bash
Bash: Agenda
Bash: Shells
¿ ?
Bash: Shells
Shell: Interfaz entre el Sistema Operativo y el Usuario
GUI (Graphical User Interface)
CLI (Command Line Interface)
Bash: Shells
Command Line Interface
Comando
Resultado
Prompt
Bash: Shells
¿Que puedo hacer?
Bash: Shells
¿Entonces, quién hace posible esto?
" Un programa, comúnmente llamado Shell, que realiza la función de interpretar los comandos recibidos por el usuario. "
Sin embargo, también hace algunas cosas más....
Bash: Shells
El protocolo de comunicación es, en realidad, un lenguaje de programación
SHELL
ORDEN
ORDEN respeta la Sintaxis y Semántica del lenguaje aceptado por el Shell
Bash: Shells
WINDOWS
Linux
Algunos Ejemplos:
Bash: Acerca de...
Bash: Bourne-Again Shell
Bash: Acerca de...
Bash es...
Bash: Intro Lenguaje
Shell Script
Bash: Intro Lenguaje
Lenguaje Interpretado (ej: Bash)
Intérprete
SO / HW
if...
then..
else..
Lenguaje Compilado (ej: C)
Compilador
if...
then..
else..
SO / HW
1010..
1110..
0010..
Traduce y Ejecuta
Traducción y Linkeo
Ejecución
Bash: Intro Lenguaje
Como todo lenguaje procedural imperativo, tiene:
Bash: Intro Lenguaje
Como muchos lenguajes de shell scripting, no sirve para:
Bash: Intro Lenguaje
Hola Mundo
#!/bin/bash
# Comentario
echo hola mundo;
exit 0;
Intérprete a utilizar
Programa
1° parámetro
2° parámetro
Bash: Intro Lenguaje
Ejecutando el script:
bash holamundo.sh
sh holamundo.sh
chmod u+x holamundo.sh
./holamundo.sh
Danger!
Bash: Intro Lenguaje
Sobre la primer línea...
¿Puede ir cualquier cosa?
#!/bin/rm
echo ¿Que onda?
Bash: Intro Lenguaje
Variables y parámetros:
$$, $!, $?, $@ $1, $2, $#, etc
Bash: Intro Lenguaje
En Bash, los espacios importan:
A=1 # OK
A =1 # Error, intenta ejecutar A
A= 1 # Error, intenta ejecutar A=
Bash: "Si no lo entiendo, es un programa"
Bash: Intro Lenguaje
Quoting (entrecomillado) & Escaping:
echo hola $A # hola mundo
echo hola ($A) # Error
echo "hola ($A)" # hola (mundo)
echo 'hola ($A)' # hola ($A)
echo hola \($A\) # hola (mundo)
Light Quoting
Strong Quoting
Escaping
Bash: Intro Lenguaje
¿Como se ejecuta el script a nivel SO?
utnso@utnso:~$ ./listar-procesos.sh
PID TTY STAT COMMAND
6719 pts/0 Ss -bash
15036 pts/0 S+ \_ /bin/bash ./listar..sh
15037 pts/0 R+ \_ ps f
Bash: Intro Lenguaje
Entonces:
¿Pueden un script ejecutor y el script ejecutado compartir variables?
Bash: Intro Lenguaje
No todo es un programa...
Builtins (o Órdenes Internas)
Ejemplos: cd, export, unset, source, ...
Bash: Intro Lenguaje
Muchas cosas más por saber:
Bash: Intro Lenguaje