shell script en linux

20
Shell Script Por Carlos Antonio Leal Saballos

Upload: carlos-antonio-leal-saballos

Post on 11-Aug-2015

208 views

Category:

Engineering


2 download

TRANSCRIPT

Page 1: Shell script en linux

Shell ScriptPor Carlos Antonio Leal Saballos

Page 2: Shell script en linux

● 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

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

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

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

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

¿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

El primer shell script

#/bin/bash# Primer shell script sencillo# Escrito por Carlos Lealclearecho "El conocimiento es poder"

Page 9: Shell script en linux

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

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

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

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

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

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

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

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

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

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

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

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 $_