2. ● Introducción a shell script
● ¿Cómo escribir un Shell Script?
● El primer shell script
● Las variables en shell script
● El comando echo
● Aritmética en shell script
● Algo sobre comillas
● Exit Status
● La sentencia read
● Paso de parametros
Agenda
3. Introducción a Shell Script
● Una de las cosas más raras que la gente dice es que hay
comandos básicos y comandos avanzados
● Todos los comanandos se pueden utilizar de forma básica y en
forma avanzada
● Existen unos comandos que se usan únicamente en ocasiones
especiales.
● Es altamente recomendado leer los manuales de cada comando.
● Shell en español siginfica concha
4. Introducción a Shell Script
● Las computadoras entienden únicamente lenguaje binario
● En los primeros sistemas operativos apareciron unos programas
especiales llamados Shell, los cuales permitían pasar órdenes al
kernel por medio de comandos.
● El shell interpreta los comandos en lenguaje humano, la mayoría
en inglés, si el comando es correcto lo pasa al kernel
● El shell es un programa diseñado para que el usuario pueda
interactuar con la máquina, por medio del teclado o por medio de
un archivo
● El Shell no es parte del kernel pero trabajan de la mano
5. Introducción a Shell Script
● Los Shell más comunes en Linux son:
Shell Desarrollado por ¿Dónde? Observación
BASH
( Bourne-Again SHell )
Brian Fox and
Chet Ramey
Free Software
Foundation
Es el Shell más común
CSH (C SHell) Bill Joy University de
California (para BSD)
Utiliza sintaxis muy
similar a lenguaje C
KSH (Korn SHell) David Korn AT & T Bell Labs
TCSHELL Vea man tcsh Una versión mejorada
de CSH
Para saber que shell hay disponbles en el sistema utilice el comando
cat /etc/shells
6. Introducción a Shell Script
¿Qué es un shell script?
Un shell script es una serie de comandos escritos en un archivo de
texto plano
El shell script puede ser automático, es decir se ejecutará por si
solo o interactivo, solicitará información adicional al usuario
¿Por qué crear un shell script?
Para ahorrar tiempo en tareas repetitivas
Para automatizar algunas tareas de la vida diaria
Para automatizar algunas tareas de administración del servidor
7. ¿Cómo escribir un shell script?
● Crear un archivo de texto plano con el editor de su preferencia
(recomendado nano o vim)
ejemplo: nano script.sh
● No olvidar cambiar los permisos con chmod para hacer el shell
script ejecutable
● Ejecute el shell, opciones posibles:
bash script.sh
sh script.sh
./script.sh
8. El primer shell script
#/bin/bash
# Primer shell script sencillo
# Escrito por Carlos Leal
clear
echo "El conocimiento es poder"
9. El segundo shell script
#/bin/bash
# Segundo shell script sencillo
# escrito por Carlos Leal
clear
echo "Hola $USER"
echo "Hoy es: ";date
echo "Es decir estamos en: ";cal
10. Las variables en shell script
●Para procesar los datos a veces es necesarios guardarlos en
variables, en shell script existen dos tipos de variables
● Variables del sistema: Están creadas y predefinidas por el
sistema, normalmente se representan en mayúsculas
● Variables del usuario: Son definidas por el usuario, normalmente
se representan en minúsculas
● Para ver el contenido de la variable se utiliza el comando echo
●Ejempo:
echo $PATH
11. Las variables en shell script
Variable Descripción
BASH Ruta del shell actual
BASH_VERSION La versión del shell que se está utilizando
COLUMNS Número de columnas de la termina
LINES Número de líneas de la terminal
HOMEd Directorio home del usuario actual
LOGNAME Nombre de usuario
OSTYPE Tipo de sistema operativo
PATH Rutas donde se encuentran los comandos
PS1 Configuraciones del pronpt
PWD Directorio actual de trabajo
SHELL Nuestro shell
USERNAME Nombre del usuario actual
Modificar las variables del sistema puede traes serios problemas
12. Las variables en shell script
Agregando variables de usuario
Para definir una variable llamada n con un valor de 10
$ n=10
Para definir una variable llamada vech con un valor de bus
vech=Bus
13. Reglas para definir variables
1. Las variables del sistema en mayúsculas las de usuario en
minúsculas
●HOME, n
2 . No poner espacios
●N=10
3. Las variables son sencibles a las mayúsculas N y n son
variables diferentes
4. Se pueden definir variables con valor NULL
●vech=
●vech=””
●5. No usar caracteres extraños como ¡, ?,* etc, en los nombres de
las variables
14. Reglas para definir variables
#/bin/bash
# Tercer shell script sencillo
# escrito por Carlos Leal
MiNombre=Carlitos
MiOS = Ubuntu
MiNo=5
echo "Mi nombre es $MiNombre"
echo "Estoy usando $MiOs"
echo "Mi numero es MiNo"
echo "Favor ayudarme a corregir los errores en este script"
15. El comando echo
Tal como se ha notado uno de los comandos más utilizados en
shell script es el comando echo, conviene profundizar un poco.
Es altamente recomendado leer detenidamene el manual del
comando echo
echo -e "Somos UCA attISTIn"
16. Aritmética Shell Script
Es posible hacer operaciones aritméticas con el comando expr,
algunos ejemplos:
$ expr 1 + 3
$ expr 2 - 1
$ expr 10 / 2
$ expr 20 % 3
$ expr 10 * 3 – caso extraño la multiplicación
$ echo `expr 6 + 3`
17. Algo sobre las comillas
echo hola mundo $PATH
echo ”hola mundo $PATH”
echo 'hola mundo $PATH'
echo `hola mundo $PATH`
echo Hoy es date
echo ”Hoy es date”
echo ”Hoy es `date`”
18. Exit Status
Cuando se ejecuta un comando, el valor de exit status puede tener
dos valores posibiles
Cero si el comando se ejecuto adecuadamente
No Cero, si el comando no se ejecuto correctamente
Para determinar si el ultimo comando se utiliza la variable especial
del shell $?
$ ls
$ echo $?
$ wildwest canwork?
$ echo $?
19. La sentencia read
#/bin/bash
# Cuarto shell script sencillo
# escrito por Carlos Leal
clear
echo "¿Cómo te llamas? ==> c:"
read nombre
echo "Hola $nombre, ¡Un placer conocerte!"
20. Paso de parametros
#!/bin/bash
echo hemos pasado $# parametros
echo la llamada a nuestro script se hizo con $0, y tenemos el
numero $$ como PID
echo el primero parametro pasado es $1
echo y el segundo, $2
echo el ultimo argumento que hemos utilizado es $_
echo todos los parametros pasados son: $@
echo el parametro anterior acabo con un valor de salida $?
echo el ultimo argumento que hemos utilizado es $_