Download - Shell script en linux
![Page 1: Shell script en linux](https://reader035.vdocuments.co/reader035/viewer/2022081806/55c9d2a4bb61eb06718b4708/html5/thumbnails/1.jpg)
Shell ScriptPor Carlos Antonio Leal Saballos
![Page 2: Shell script en linux](https://reader035.vdocuments.co/reader035/viewer/2022081806/55c9d2a4bb61eb06718b4708/html5/thumbnails/2.jpg)
● 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
![Page 3: Shell script en linux](https://reader035.vdocuments.co/reader035/viewer/2022081806/55c9d2a4bb61eb06718b4708/html5/thumbnails/3.jpg)
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
![Page 4: Shell script en linux](https://reader035.vdocuments.co/reader035/viewer/2022081806/55c9d2a4bb61eb06718b4708/html5/thumbnails/4.jpg)
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
![Page 5: Shell script en linux](https://reader035.vdocuments.co/reader035/viewer/2022081806/55c9d2a4bb61eb06718b4708/html5/thumbnails/5.jpg)
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
![Page 6: Shell script en linux](https://reader035.vdocuments.co/reader035/viewer/2022081806/55c9d2a4bb61eb06718b4708/html5/thumbnails/6.jpg)
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 repetitivasPara automatizar algunas tareas de la vida diariaPara automatizar algunas tareas de administración del servidor
![Page 7: Shell script en linux](https://reader035.vdocuments.co/reader035/viewer/2022081806/55c9d2a4bb61eb06718b4708/html5/thumbnails/7.jpg)
¿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.shsh script.sh./script.sh
![Page 8: Shell script en linux](https://reader035.vdocuments.co/reader035/viewer/2022081806/55c9d2a4bb61eb06718b4708/html5/thumbnails/8.jpg)
El primer shell script
#/bin/bash# Primer shell script sencillo# Escrito por Carlos Lealclearecho "El conocimiento es poder"
![Page 9: Shell script en linux](https://reader035.vdocuments.co/reader035/viewer/2022081806/55c9d2a4bb61eb06718b4708/html5/thumbnails/9.jpg)
El segundo shell script
#/bin/bash# Segundo shell script sencillo# escrito por Carlos Lealclearecho "Hola $USER"echo "Hoy es: ";dateecho "Es decir estamos en: ";cal
![Page 10: Shell script en linux](https://reader035.vdocuments.co/reader035/viewer/2022081806/55c9d2a4bb61eb06718b4708/html5/thumbnails/10.jpg)
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
![Page 11: Shell script en linux](https://reader035.vdocuments.co/reader035/viewer/2022081806/55c9d2a4bb61eb06718b4708/html5/thumbnails/11.jpg)
Las variables en shell script
Variable Descripción
BASH Ruta del shell actualBASH_VERSION La versión del shell que se está utilizandoCOLUMNS Número de columnas de la terminaLINES Número de líneas de la terminalHOMEd Directorio home del usuario actualLOGNAME Nombre de usuarioOSTYPE Tipo de sistema operativoPATH Rutas donde se encuentran los comandosPS1 Configuraciones del pronptPWD Directorio actual de trabajoSHELL Nuestro shellUSERNAME Nombre del usuario actual
Modificar las variables del sistema puede traes serios problemas
![Page 12: Shell script en linux](https://reader035.vdocuments.co/reader035/viewer/2022081806/55c9d2a4bb61eb06718b4708/html5/thumbnails/12.jpg)
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
![Page 13: Shell script en linux](https://reader035.vdocuments.co/reader035/viewer/2022081806/55c9d2a4bb61eb06718b4708/html5/thumbnails/13.jpg)
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
![Page 14: Shell script en linux](https://reader035.vdocuments.co/reader035/viewer/2022081806/55c9d2a4bb61eb06718b4708/html5/thumbnails/14.jpg)
Reglas para definir variables
#/bin/bash# Tercer shell script sencillo# escrito por Carlos LealMiNombre=CarlitosMiOS = UbuntuMiNo=5echo "Mi nombre es $MiNombre"echo "Estoy usando $MiOs"echo "Mi numero es MiNo"echo "Favor ayudarme a corregir los errores en este script"
![Page 15: Shell script en linux](https://reader035.vdocuments.co/reader035/viewer/2022081806/55c9d2a4bb61eb06718b4708/html5/thumbnails/15.jpg)
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 \a\t\tISTI\n"
![Page 16: Shell script en linux](https://reader035.vdocuments.co/reader035/viewer/2022081806/55c9d2a4bb61eb06718b4708/html5/thumbnails/16.jpg)
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`
![Page 17: Shell script en linux](https://reader035.vdocuments.co/reader035/viewer/2022081806/55c9d2a4bb61eb06718b4708/html5/thumbnails/17.jpg)
Algo sobre las comillas
echo hola mundo $PATHecho ”hola mundo $PATH”echo 'hola mundo $PATH'echo `hola mundo $PATH`
echo Hoy es dateecho ”Hoy es date”echo ”Hoy es `date`”
![Page 18: Shell script en linux](https://reader035.vdocuments.co/reader035/viewer/2022081806/55c9d2a4bb61eb06718b4708/html5/thumbnails/18.jpg)
Exit Status
Cuando se ejecuta un comando, el valor de exit status puede tener dos valores posibiles
Cero si el comando se ejecuto adecuadamenteNo 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 $?
![Page 19: Shell script en linux](https://reader035.vdocuments.co/reader035/viewer/2022081806/55c9d2a4bb61eb06718b4708/html5/thumbnails/19.jpg)
La sentencia read
#/bin/bash# Cuarto shell script sencillo# escrito por Carlos Lealclearecho "¿Cómo te llamas? ==> \c:"read nombreecho "Hola $nombre, ¡Un placer conocerte!"
![Page 20: Shell script en linux](https://reader035.vdocuments.co/reader035/viewer/2022081806/55c9d2a4bb61eb06718b4708/html5/thumbnails/20.jpg)
Paso de parametros
#!/bin/bash
echo hemos pasado $# parametrosecho la llamada a nuestro script se hizo con $0, y tenemos el numero $$ como PIDecho el primero parametro pasado es $1echo y el segundo, $2echo 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 $_