+ All Categories
Home > Documents > manual de shell Script

manual de shell Script

Date post: 06-Jul-2018
Category:
Upload: david-cadillo
View: 281 times
Download: 0 times
Share this document with a friend

of 16

Transcript
  • 8/17/2019 manual de shell Script

    1/16

    1

    SHELL SCRIPT EN LINUX

    UNIVERSIDAD PRIVADA ANTENOR ORREGO

    Ing. Jorge Jara

    Ing. Jorge Jara

    • Introducción a la programación en Shell

    • Fundamentos de programación con Shell Script

    • Comparación de expresiones• Estructura de control de flujo condicional

    • Estructura de control de flujo iterativo

    CONTENIDO

  • 8/17/2019 manual de shell Script

    2/162

    Ing. Jorge Jara

    INTRODUCCIÓN A LA PROGRAMACIÓN EN SHELL

    • Definición de un Shell Script

    • Importancia de los Shell Script

    • Cómo se ejecuta un Shell Script

    • Creación y ejecución de Shell Scripts

    Ing. Jorge Jara

    Definición de un Shell Script

    • Shell Script es un grupo de comandos escritos en un

    archivo de texto.

    • La programación de la Shell consiste en automatizar

    ciertas tareas del entorno del interprete de comandos

    que son de utilidad para el usuario.

    • Los Scripts pueden contener variables, comandos de

    e/s, sentencias condicionales e iterativo.

    • Los Scripts hacen uso de redireccionadores, los

    cuales permiten transferir el flujo de e/s de un

    comando a otro comando.

  • 8/17/2019 manual de shell Script

    3/163

    Ing. Jorge Jara

    Importancia de los Shell Script

    • Útil para crear nuestros propios comandos.

    • Permite ahorrar tiempo.

    •  Automatiza algunas tareas del trabajo diario.

    • Parte de la administración del sistema puede ser

    automatizada.

    Ing. Jorge Jara

    Cómo se ejecuta un Shell Script

    • Usar algún editor como por ejemplo vi  para escribir

    shell script.

    • Después de guardar el shell script, asignar el permiso

    execute para tu script como sigue:

    chmod +x nombre-script

    • Ejecutar tu script, como por ejemplo:

    ./nombre-script

  • 8/17/2019 manual de shell Script

    4/164

    Ing. Jorge Jara

    Creación y ejecución de Shell Scripts

    $ vi ejemplo1## Mi primer shell script#clearecho “ Hola Mundo………." 

    • Guardar el script, luego asignarle el permiso respectivo

    y finalmente ejecutar el script como sigue:

    $ ./ejemplo1

    Ing. Jorge Jara

    Comandos del Script  Descripción

    $ vi ejemplo1  Inicia el editor vi

    #

    # M i primer shell script# 

    # seguido por cualquier texto es

    considerado como un comentario. Los

    comentarios proveen más información

    acerca de un script, explicación lógicasobre un shell script.

    Sintaxis: 

    # comentario 

    clear   Limpia la pantalla 

    echo “ Hola Mundo..........." 

    Para imprimir mensajes o valores de

    variables en pantalla, usamos el comando

    echo , La forma general del comando echo

    es: echo "Mensaje" 

  • 8/17/2019 manual de shell Script

    5/165

    Ing. Jorge Jara

    FUNDAMENTOS DE PROGRAMACIÓN CON SHELL SCRIPT

    • Manejo de variables en Shell

    • Parámetros posiciónales

    • Entrecomillado

    • Expresiones aritméticas

    • Lectura de datos desde la entrada estándar

    Ing. Jorge Jara

    Parámetros posicionales

    • Es posible escribir un shell script que tome un número

    de parámetros desde la línea de comandos, estas

    opciones se las proporciona Linux al programa shell

    como parámetros posicionales.

    • La forma de pasar estos comandos es con los

    parámetros posicionales $1 hasta $9. Cada parámetro

    corresponde a la posición del argumento en la línea de

    comandos.

  • 8/17/2019 manual de shell Script

    6/166

    Ing. Jorge Jara

    • El parámetro posicional $0 hace referencia al nombredel comando o nombre del fichero ejecutable que

    contiene el shell script.

    • Solo se pueden pasar nueve argumentos, pero se

    puede acceder a mas de nueve usando el comando

    shif t. Cada vez que se ejecuta el comando shift  el

    argumento 1 desaparece, el 2 se convierte en el uno, y

    así sucesivamente hasta el 9 que se convierte en el 8quedando aquel libre.

    Ing. Jorge Jara

    Manejo de variables en Shell

    Las variables se pueden englobar en tres tiposprincipales:

    • Variables de entorno

    • Variables incorporadas• Variables de usuario

  • 8/17/2019 manual de shell Script

    7/167

    Ing. Jorge Jara

    Variables de entorno

    • Creadas y mantenidas por Linux. Este tipo de variables son

    definidas en LETRAS MAYUSCULAS.• Ejemplos de variables de entorno: 

    Variables de Entorno  DescripciónBASH=/bin/bash Nombre del shell 

    BASH_VERSION=1.14.7(1) Nombre de la versión del shell 

    HOME=/home/sisope Directorio home

    LOGNAME=sisope   Nombre de Inicio de sesión 

    OSTYPE=Linux  Tipo de Os

    PATH=/usr/bin:/sbin:/bin:/usr/sbin Ruta establecida PWD=/home/sisope/Jorge   Directorio de trabajo actual 

    SHELL=/bin/bash Nombre del shell

    USERNAME=sisope   Nombre de Usuario que hainiciado sesión en esta PC 

    Ing. Jorge Jara

    • Si se modifica el valor de una variable, este permanece

    hasta que efectúas el logout del sistema o sales del

    shell en el cual estas trabajando.

    • Para mostrar el valor de una variable, usar el comando

    echo seguidos por el signo dollar($) y el nombre de la

    variable. Es decir si el nombre de la variable es

    SHELL, puede mostrar el valor de la variable usando:

    echo $SHELL

    • Para asignar un valor a una variable:

    myname=jorge

  • 8/17/2019 manual de shell Script

    8/168

    Ing. Jorge Jara

    Variables incorporadas (Built in)

    • Las variables incorporadas son unas variables especiales

    proporcionadas por el sistema Linux, a diferencia de las

    variables de entorno, no se pueden modificar.

    • Algunas de estas variables son:

    Variables

    Built in Descripción

    $#   Números de parámetros posicionales

    $* Una cadena de todos los argumentos pasados en el

    momento que se invoca el programa shell. 

    $@  Lo mismo que el anterior  $0  El nombre del programa shell

    $$  PID del shell 

    $! PID del ultimo comando ejecutado en el background

    (iniciado con &) 

    Ing. Jorge Jara

    • Ejemplo de variables incorporadas, aquí tiene un programa

    llamado ejemplo2:

    #mi programa de prueba

    echo “El número de parámetros es ” $# 

    echo “El nombre del programa es ” $0 

    echo “Los parámetros como una sola cadena es ” $* 

    Ejecutar ejemplo2 desde la línea de comandos de la siguiente manera:

    ./ejemplo2 jorge silena

    Se obtendrá el siguiente resultado:

    El número de parámetros es 2

    El nombre del programa es ejemplo2

    Los parámetros como una sola cadena es jorge silena

  • 8/17/2019 manual de shell Script

    9/169

    Ing. Jorge Jara

    Variables de usuario

    • Para usar variables definidas por el usuario usar lasiguiente sintaxis: nombre_variable=valor

    • Por ejemplo:

    nro=10

    Ing. Jorge Jara

    Entrecomillado

    • Unos cuantos caracteres se merecen una nota especial. Son las comillas

    doble ( “ ), las comillas simples ( ’ ) y el acento inverso ( ´ ).

    Comillas Nombre Descripción

    "  Comillas Dobles 

    • Si una cadena contieneespacios incrustados, puedeacercar la cadena en unascomillas dobles.

    • Resuelven todas las variablesdentro de una cadena.

    '  Comillas Simples Para hacer que el shell deje deresolver una variable.

    `   Acento inversoPuede usar un acento inverso ( ` )

     para que el resultado de la

    ejecución de un comando se

    almacene en una variable. 

  • 8/17/2019 manual de shell Script

    10/1610

    Ing. Jorge Jara

    Expresiones aritméticas• El comando expr evalúa sus argumentos considerándolos como

    una expresión y escribe el resultado sobre la salida estándar.• Sintaxis: expr variable operador variable

    • Donde los operadores son:

    suma +

    resta -

    multiplicación *

    división /

    resto %

    • Ejemplo 1: expr 13 + 49

    El resultado de esta expresión es: 62

    • Ejemplo 2: echo `expr 6 + 3`

    Ing. Jorge Jara

    Lectura de datos desde la entrada estándar

    • Para leer de la entrada estándar se utiliza el comando

    read.

    • Ejemplo 3:

    echo "Por favor introduzca su nombre:"read nombre

    echo "Bienvenido $nombre"

    echo "Introduce tu apellido\n“

    echo "seguido de tu nombre: \c“

    read apellido nombre

    echo "Bienvenido: $nombre $apellido“

  • 8/17/2019 manual de shell Script

    11/1611

    Ing. Jorge Jara

    Ejercicios• Definir una variable vn con el valor jorge e imprimirlo por

    pantalla.

    • Como definir dos variables x=40, y=8 y luego imprimir el

    resultado de la división de x e y.

    • Modificar el ejercicio anterior y guardar el resultado de la división

    de x e y en una variable z.

    • Crear un script que permita mostrar el número de parámetros,

    nombre del script y los nombres de cada uno de los parámetros

    posiciónales pasados desde la línea de comandos.

    • Elaborar un script que muestre en pantalla la hora actual, la

    fecha, el nombre de inicio de sesion del usuario y el directorio

    actual.

    Ing. Jorge Jara

    COMPARACIÓN DE EXPRESIONES

    • Comparación de cadenas

    • Comparación de números

  • 8/17/2019 manual de shell Script

    12/1612

    Ing. Jorge Jara

    Comparación de cadenas

    Se pueden usar los siguientes operadores para comparar dos

    expresiones de cadenas:

    Operador Descripción

    string1 = string2 string1 es igual a string2

    string1 != string2 string1 no es igual a string2

    string1 string1 no está vacía

    -n string1

    Evalúa si la longitud de string1 es

    mayor que cero

    -z string1Evalúa si la longitud de string1 esigual a cero

    Ing. Jorge Jara

    Comparación de númerosSe pueden usar los siguientes operadores para comparar dos

    números:

    OperadorMatemático

    Descripción Uso de

    test con elcomando if  

    Uso de [expr]con el

    comando if

    -eq 5 == 6 if test 5 -eq 6 if [ 5 -eq 6 ]

    -ne 5 != 6 if test 5 -ne 6 if [ 5 -ne 6 ]

    -lt 5 < 6 if test 5 -lt 6 if [ 5 -lt 6 ]

    -le 5 6 if test 5 -gt 6 if [ 5 -gt 6 ]

    -ge 5 >= 6 if test 5 -ge 6 if [ 5 -ge 6 ]

  • 8/17/2019 manual de shell Script

    13/1613

    Ing. Jorge Jara

    ESTRUCTURA DE CONTROL DE FLUJO CONDICIONAL

    La declaración if

    La declaración if evalúa una expresión para tomar unadecisión. Una condición if tiene el siguiente formato: 

    if   [ expresión ] ; then

    Declaraciones

    elif  [ expresión ] ; then

    Declaraciones

    elseDeclaraciones

    fi 

    Ing. Jorge Jara

    La declaración case

    Se puede usar una declaración case en lugar de unadeclaración if si se tiene un gran número de condiciones.

    case $nombre-variable in

    patron1 | patron2)Declaraciones;;

    patron3 | patron4)

    Declaraciones;;

    *)

    Declaraciones;;

    esac 

  • 8/17/2019 manual de shell Script

    14/1614

    Ing. Jorge Jara

    ESTRUCTURA DE CONTROL DE FLUJO ITERATIVO

    La declaración for

    La declaración for dispone del siguiente formato:

    for   nombre _ variable in  lista

    do 

    declaraciones

    done

    Ing. Jorge Jara

    La declaración while

    La declaración while se puede usar para ejecutar unaserie de comandos mientras una condición es verdadera

    while  [ condición ]do 

    declaraciones

    done

  • 8/17/2019 manual de shell Script

    15/1615

    Ing. Jorge Jara

    • Escribir un script que permita determinar si un número es

    positivo o negativo. 

    if [ $1 –gt 0 ]

    then

    echo "$1 numero es positivo"

    else

    echo "$1 numero es negativo"

    fi 

    Ejemplos

    Ing. Jorge Jara

    • Escribir un script que permita mostrar el nombre del mes si le

    proporciona el número del mes como parámetro. 

    case $1 in

    01 | 1) echo “El mes es enero”;; 

    02 | 2) echo “El mes es febrero”;; 

    03 | 3) echo “El mes es marzo”;; 

    04 | 4) echo “El mes es abril”;; 

    05 | 5) echo “El mes es mayo”;; 

    06 | 6) echo “El mes es junio”;; 

    07 | 7) echo “El mes es julio”;; 

    08 | 8) echo “El mes es agosto”;; 

    09 | 9) echo “El mes es septiembre”;; 

    10) echo “El mes es octubre”;; 

    11) echo “El mes es noviembre”;; 

    12) echo “El mes es diciembre”;; 

    *) echo “Parámetro no válido”;; 

    esac

  • 8/17/2019 manual de shell Script

    16/16

    Ing. Jorge Jara

    Ejercicios

    • Escribir un shell script que permita sumar dos números, los

    cuales son pasados a través de la línea de comandos.

    • Escribir un script que imprima la siguiente lista de números 5, 4,

    3, 2, 1.

    • Escribir un script que imprima todos los divisores de un número

    pasado como argumento.


Recommended