- 1. Shell Scripting - Introduccin Enrique Verdes SysAdmin UyLUG
2do. Debian Day
2. Breve presentacin: Quien es El G@llego?
- Programador por formacin, SysAdmin por deformacin.
- Certificado LPIC-1. 10 aos de experiencia usando Linux.
- Socio fundador del UyLUG.
- Miembro de varias asociaciones: Hispalinux, IEEE, Computer
Society.
- Profesor Adjunto de Administracin de Sistemas GNU/Linux en la
Universidad ORT.
3. El shell interactivo
- El shell es un ambiente de programacin capaz de automatizar
casi cualquier cosa en su sistema Linux.
- Una vez iniciado presenta unprompt($ #) para indicar que est
listo para recibir instrucciones por laentrada estndar(usualmente
el teclado).
- El shell de uso ms comn en Linux esbash , pero existen
otros.
- El shell puede ser cualquier aplicacin de usuario.
4. Que nos ofrece el shell?
-
- Una interfase interactiva textual al sistema operativo.
-
- Facilidades para iniciar y administrar comandos y
programas.
-
- Un lenguaje de programacin.
5.
Un script muy sencillo... 6.
... lo complicamos con variables 7. Variables
- De ambiente : Variables globales. Son pasadas a todos los
procesos iniciados por el shell, incluyendo otros shells. Esto
significa que los procesos hijoheredanel ambiente. Por convencin se
expresan en maysculas.
- De shell : Son variables locales. So especficas al shell
corriente y no son heredadas por procesos hijo. Enbash , las
variables de shell pasan a ser de ambiente cuando son
exportadas.
8. Variables de ambiente
- Muchas de las variables son necesarias para la ejecucin de
programas.
- Para que esas variables esten disponibles deben ser exportadas
para convertirlas envariables de ambiente.
- Para listar las variables de ambiente:
9. Un poquito mas complicado ...
10. Ahora con sustitucin de comandos.
- HOLA="Hola, hoy es el da $(date +%j) del ao."
11. Estructuras condicionales if .. then
12. Condicional if .. then .. else
- if [ $(whoami) = root ]; then
13. Condicional if .. then .. elif
- if [ $USER = root ]; then
- elif [ $(whoami) = gallego ]; then
-
- echo El usuario es El G@llego
14. Ahora un ejemplo con argumentos.
-
- echo el archivo $FILE existe
-
- echo archivo no encontrado
15. Ciclos: for, while y until
- Elfores distinto a los de otros lenguajes de programacin.
Bsicamente, le permite iterar sobre una serie de `palabras'
contenidas dentro de una cadena.
- Elwhileejecuta un trozo de cdigo si la expresin de control es
verdadera, y termina cuando es falsa (o se encuentra una
interrupcin explcita dentro del cdigo en ejecucin).
- Eluntiles casi idntico alwhile , excepto en que el cdigo se
ejecuta mientras la expresin de control se evale como falsa.
16. Ejemplo de for...
17. Ejemplo de while...
- while [ $CONTADOR -lt 10 ]; do
- echo El contador es $CONTADOR
18. Ejemplo de until...
- until [ $CONTADOR -lt 10 ]; do
19. La instruccin case...
-
- echo Usuario es el G@llego;;
20. Un pequeo ejemplo.
- gprintf "Usage: %s " "$(basename $0) {start}"
21. Ingresando informacin...
- echo Por favor, introduzca su nombre:
22. Uso de argumentos...
- $0 : Nombre del programa script.
- $# : Cantidad de argumentos.
- $1..$n : Argumentos segn su posicin en la lnea de
comandos.
- $@ : Lista de argumentos.
- $? : Resultado de la ejecucin del ultimo comando.
- $$ : PID del shell actual.
23. Ejemplo de script con argumentos.
-
- echo el archivo $1 existe
-
- echo archivo no encontrado
24. Operadores de cadenas de texto
- [ s1 = s2 ]: s1 coincide con s2
- [ s1 != s2 ]: s1 no coincide con s2
- [ s1 < s2 ]: s1 es alfabticamente anterior a s2, con el
locale actual
- [ s1 > s2 ]: s1 es alfabticamente posterior a s2, con el
locale actual
- [ -n s1 ]: s1 no es nulo (contiene uno o ms caracteres)
25. Operadores aritmeticos
26. Operadores relacionales aritmeticos
- [ a -lt b ] equivale a ((a < b))
- [a -gt b ] equivale a ((a > b))
- [a -le b ] equivale a ((a = b))
- [a -eq b ] equivale a ((a == b))
- [a -ne b ] equivale a ((a != b))
27. Operadores lgicos
28. Operadores sobre archivos
-
- darchivo : Verdadero siarchivoexiste y es un directorio
-
- earchivo : Verdadero siarchivoexiste
-
- farchivo : Verdadero siarchivoexiste y es un archivo comn
-
- Larchivo : Verdadero siarchivoexiste y es un enlace
simblico
-
- rarchivo : Verdadero siarchivoexiste y puede leerse
-
- sarchivo : Verdadero siarchivoexiste y tiene tamao mayor que
0
-
- warchivo : Verdadero siarchivoexiste y es escribible
-
- xarchivo : Verdadero siarchivoexiste y es ejecutable
-
- arch1-otarch2 : Verdadero siarch1es ms viejo quearch2
29. Algunos ejemplos prcticos
- Usuario que usa ms espacio en disco
30. Para ampliar estos temas Bash Guide for Begginers -
Matchtelt Garrels
http://www.tldp.org/LDP/Bash-Beginners-Guide/html/index.html
Visiten el Proyecto de Documentacin de Linux
http://www.tldp.org