2011 - Guia Entorno Bash y Shell Scripting en LINUX[1]

Embed Size (px)

Citation preview

  • 7/31/2019 2011 - Guia Entorno Bash y Shell Scripting en LINUX[1]

    1/21

    LINUX: Entorno y Shell scriptingUniversidad Tec nolgica Nac ional - Facultad Regiona l Santa Fe

    Sistemas Operativos | LINUX: Entorno y Shell scripting 1

    SISTEMAS OPERATIVOSGUIA PRCTICA:

    LINUX: Entorno y Shell scripting

    Material de consulta y bibliografa

    Pgina Web de la Ctedra. Pginas man de LINUX Internet. http://dymas.ii.uam.es/~flh/macprog/bash.pdf

    Introduccin

    El objetivo de esta gua es primero presentar al alumno herramientas bsicas parapoder usar los comandos disponibles dentro de un entorno LINUX, como as tambin,la automatizacin de tareas mediante la escritura de scripts utilizando dichoscomandos. Sus usos reales, sern demostrados mediante ejemplos.

    Se recomienda, aunque no es requisito, tener una mquina virtual ejecutando LINUXmientras se sigue la gua, de esta manera el alumno podr ir probando los distintosejemplos propuestos.

    Primeros pasos en el entorno LINUX

    Al iniciar el sistema operativo de la mquina virtual, lo que se realiza es el proceso dearranque o booteo. Esto no slo en la mquina virtual, cualquier sistema operativo(ya sea virtualizado o nativo), en este caso Linux, realiza el proceso de booteo.

    Por pantalla podr ver el mensaje con el informe del estado por la carga einicializacin de los diferentes procesos y dispositivos.

    Cuando se han cargado y ejecutado todos los procesos necesarios para lainicializacin del sistema, podr ver la pantalla de login o acceso, en la que se deberautenticar con un usuario y una palabra clave.

    Para iniciar:

    usuario: so2011password: so2011(usuario sin privilegios de administrador)

    usuario: rootpassword: root(usuario con privilegios de administrador)

    A continuacin, se presenta un ejemplo de la pantalla de login.

  • 7/31/2019 2011 - Guia Entorno Bash y Shell Scripting en LINUX[1]

    2/21

    LINUX: Entorno y Shell scriptingUniversidad Tec nolgica Nac ional - Facultad Regiona l Santa Fe

    Sistemas Operativos | LINUX: Entorno y Shell scripting 2

    Con CTRL + ALT F1 hasta F6 puede ver las terminales disponibles identificadas con

    tty#. (Con F7 regresa a la pantalla inicial con entorno grfico).

  • 7/31/2019 2011 - Guia Entorno Bash y Shell Scripting en LINUX[1]

    3/21

  • 7/31/2019 2011 - Guia Entorno Bash y Shell Scripting en LINUX[1]

    4/21

    LINUX: Entorno y Shell scriptingUniversidad Tec nolgica Nac ional - Facultad Regiona l Santa Fe

    Sistemas Operativos | LINUX: Entorno y Shell scripting 4

    Cada usuario tiene un directorio dentro de home, donde guardan sus archivos ytambin tiene la configuracin personalizada de cada uno.

    / root Es el directorio home del usuario administrador del sistema, root.

    / usr Contiene varios subdirectorios, contiene aplicaciones de usuario.

    Tambin documentacin, cdigo fuente, libreras, etc. Algunos ejemplos son:

    /bin gran parte de los comandos/include archivos cabecera para programacin en C y C++

    / proc Informacin propia del sistema.

    Se actualiza y genera dinmicamente.

    Ejecutar ls F en /proc

    - los subdirectorios identificados por nmeros corresponden a los PID de losprocesos :

    ingrese alguno de estos subdirectorios (cd) ejecute #more status (podr ver el nombre del proceso y el estado)

    - more /proc/interrupts

    Columna 1: identifica el nmero de IRQ (Interrupt Requests)Columna 2: identifica a la CPU (si fueran ms CPUs, por c/u se ve unacolumna). Por cada IRQ muestra el nmero propio de la interrupcin asociadoa la CPU.

    Si slo tenemos una CPUColumna 3: es el tipo de interrupcinColumna 4: el dispositivo en que se localiza esa IRQ.

  • 7/31/2019 2011 - Guia Entorno Bash y Shell Scripting en LINUX[1]

    5/21

    LINUX: Entorno y Shell scriptingUniversidad Tec nolgica Nac ional - Facultad Regiona l Santa Fe

    Sistemas Operativos | LINUX: Entorno y Shell scripting 5

    Comandos Bsicos

    Para acceder a la ayuda o manual de Linux se utiliza el comandoman:

    Por ejemplo para consultar todas las pginas del manual acerca del comando exit:

    #man a exit (con q , se pu ede ca mbiar de sec ciones)

    Para conocer las diferentes secciones del manual

    #man man

    Comandos bsicos (ls, grep, etc) System calls Etc.

    Otra forma de obtener ayuda sobre los distintos comandos es haciendo.

    #nombre-comando - -help (ejemp lo: man - -help)

    O tambin:

    #info nombre-comando (ejemplo: info man)

    Para recorrer y navegar por el rbol de directorios:

    Verificar en qu directorio se encuentra Ud. Actualmente, ejecutar:

    #pwd

    Cambiar al directorio /usr/bin

    # cd / usr/ bin

    Cambiar al directorio padre de /bin

    #cd ..

    El parmetro del comando cd .., sube un nivel en la jerarqua de directorios.

    Para probar los comandos en conjunto, vuelva a /usr/bin y luego cambie al directorio

    home del usuario root.

    #cd bin#pwd#/ usr/ bin#pwd#/ root

  • 7/31/2019 2011 - Guia Entorno Bash y Shell Scripting en LINUX[1]

    6/21

    LINUX: Entorno y Shell scriptingUniversidad Tec nolgica Nac ional - Facultad Regiona l Santa Fe

    Sistemas Operativos | LINUX: Entorno y Shell scripting 6

    Repasando lo anterior, se puede conocer la jerarqua de directorios de Linux con

    #man hier

    Para trabajar con directorios y su contenido:

    Mostrar un listado del contenido del directorio /usr

    #ls /usr (tener en cuenta que si no se especifica un directorio en particular, el comandomuestra el contenido del directorio actual)

    Al ejecutar la siguiente accin:

    #ls l / usr

    Linux mostrar los archivos en formato largo (nombre, fecha, atributos, etc)

    -[- - -] [- - -] [- - -], cantidad de enlaces, usuario propietario, grupo propietario, tamao,fecha y hora ltima modificacin.

    Significado de la estructura de permisos:- tipo (d: directorio, - archivo regular, l link)

    [- - -] permisos del propietario del recurso (archivo o directorio)[- - -] permisos del grupo[- - -] permisos de otros

    Los valores de los permisos estn entre []r: lectura

    w: escriturax: ejecucin

    El comando ls acepta muchos parmetros que modifican su funcionamiento. Porejemplo, para mostrar el contenido del directorio /usr/include y el de sus subdirectoriosen caso de tenerlos (listar en forma recursiva) se puede ejecutar:

    #ls R / usr/ include

    Mostrar el contenido del archivo /etc/passwd.

    # more / etc/ passwd

    Modificar la hora a 12:30:

    #date s 12:30...# date

  • 7/31/2019 2011 - Guia Entorno Bash y Shell Scripting en LINUX[1]

    7/21

    LINUX: Entorno y Shell scriptingUniversidad Tec nolgica Nac ional - Facultad Regiona l Santa Fe

    Sistemas Operativos | LINUX: Entorno y Shell scripting 7

    Muestre el contenido de las siguientes variables de entorno: directorio del usuariodesde donde ejecutar el shell cuando ingrese al sistema, nombre de la mquina en laque est trabajando, paths de aquellos directorios a los que el usuario tiene accesodirecto. (HOME, HOSTNAME, PATH)

    #echo $nombre_de_variable

    Puede consultar los nombres de las variables en man(7) environ

    Ejemplos de otros comandos: clear, echo, cat,..

    Gestin de archivos y directorios

    Verificar de qu tipo es un archivo dado:

    #file / etc/ passwd#/ etc/ pa sswd: ASCII text

    #file / usr/b in/gettext.sh.. Bourne Shell script text executable

    #file / usrdirectory

    #file / root/molclock.cASCII C program text

    Crear un archivo vaco en el directorio /tmp llamado cualquiera

    #touch / tmp/ cualquiera

    Renombrar el archivo cualquiera del directorio /tmp, como clave, y mover el archivoclave al directorio raz.

    #mv / tmp/cualquiera / tmp/c lave#ls / tmp pa ra verificar#mv / tmp/ clave /#ls / tmp ... verifico#ls / ...verifico.

    Crear el siguiente directorio: /tmp/so/prctica

    #mkdir p / tmp/ so/ practica

    El parmetro -p crea los directorios intermedios.

    Copiar al directorio creado anteriormente, el archivo clave que se encuentra en eldirectorio raz.

    #cp /c lave /tmp/ so/ prac tica

  • 7/31/2019 2011 - Guia Entorno Bash y Shell Scripting en LINUX[1]

    8/21

    LINUX: Entorno y Shell scriptingUniversidad Tec nolgica Nac ional - Facultad Regiona l Santa Fe

    Sistemas Operativos | LINUX: Entorno y Shell scripting 8

    Listar el contenido del directorio /tmp/so en forma completa. Luego, borrar dichodirectorio.

    #ls R / tmp/ so (lista tamb in el c ontenido d e los subd irec torios, para borrarlo deb eesta r vac o).

    #rm / tmp/so/ prac tica / * ( rm sin pa rmetros elimina sin consulta r)#rmdir / tmp/ so/ prac tica#rmdir / tmp/ so#ls / tmp

    Buscar archivos respondiendo a las siguientes condiciones:

    Todos los archivos que comiencen con man

    #find / -type f -name man*

    Muestrar en orden alfabtico las lneas del archivo /etc/passwd

    #sort / etc/ pa sswd

    Gestin de Procesos

    Mostrar el estado de los procesos activos:

    #ps

    Ejecutar la siguiente instruccin, verificar cul es el id del proceso y luego matar elproceso.

    # yes > / dev/ null ps#kill 9 [id]

    En este caso, el smbolo & significa que el proceso se va a generar en background (esdecir en segundo plano, a pesar de que el shell sea liberado es decir ver el smbolodel prompt y podr ejecutar otro comando como ps- mientras que el proceso generadopor yes se sigue ejecutando).

    Otra forma de obtener informacin sobre procesos:

    #vmstat

    procs:r nmero de procesos esperando su tiempo de ejecucinb nro de procesos en espera ininterrumpible

  • 7/31/2019 2011 - Guia Entorno Bash y Shell Scripting en LINUX[1]

    9/21

    LINUX: Entorno y Shell scriptingUniversidad Tec nolgica Nac ional - Facultad Regiona l Santa Fe

    Sistemas Operativos | LINUX: Entorno y Shell scripting 9

    memory:swpd: memoria virtual empleada (kB).free: memoria inactiva (kB).buff: memoria usada como bferes (kB).

    swap

    si: Cantidad de memoria swapped desde disco (kB/s).so: Cantidad de memoria swapped al disco (kB/s).

    IObi: Bloques enviados a un dispositivo de bloques (bloques/s).bo: Bloques recibidos desde un dispositivo de bloques (bloques/s).

    Systemin: El nmero de interrupciones por segundo, incluyendo al reloj.cs: El nmero de cambios de contexto por segundo.

    stos son porcentajes de tiempo total de CPU.

    us: tiempo de usuariosy: tiempo de sistemaid: tiempo de inactividad

    Gestin de usuarios

    Generar los siguientes usuarios:

    Nombres: usuario1 y usuario2Grupos: com_tarde y com_noche

    Cada usuario tendr como grupo principal a los Grupos indicados respectivamente.

    A cada usuario se le generar un directorio propio en /home con el nombre de cadauno y adems cada grupo tendr un directorio dentro de /home

    #groupadd com_tarde#groupadd com_noche

    (con el comando groups se puede ver cul es el grupo de un usuario determinado)(generar los usuarios asociados a cada grupo)

    #useradd g com_tarde usuario1#useradd g com_tarde usuario2

    -g indica que el usuarioX tiene como grupo principal al grupo indicado.

    (asignar las claves a cada usuario)

    #passwd usuario1#passwd usuario2

  • 7/31/2019 2011 - Guia Entorno Bash y Shell Scripting en LINUX[1]

    10/21

    LINUX: Entorno y Shell scriptingUniversidad Tec nolgica Nac ional - Facultad Regiona l Santa Fe

    Sistemas Operativos | LINUX: Entorno y Shell scripting 10

    (crear los directorios de trabajo correspondientes)

    #mkdir / home/ com_noche#mkdir / home/ com_tarde#mkdir / home/ usuario1#mkdir / home/ usuario2

    Permisos

    Tener en cuenta que los permisos son:

    - a nivel archivo:r : lecturaw: escriturax: ejecucin

    - a nivel directorio:r: listar contenidow: borrar o crear archivosx: navegar por el directorio, es decir ingresar y moverse a lossubdirectorios.

    Verificar los permisos de los directorios /home/com_noche y /home/com_tarde

    (ubicarse en el directorio /home)

    #ls l

    Puede ver que los permisos para los directorios de ambas comisiones son lossiguientes:

    d[rwx][r-x][r-x] ,el propietario (root) tiene todos los permisos,

    el grupo (root) lectura y ejecuciny el resto de los usuarios lo mismo que el grupo.

    Recordar que si Ud. est con login root, al ejecutar el comando groups podr ver cules el grupo del usuario.

    Asignar slo permisos de lectura y ejecucin en cada carpeta que corresponde agrupos diferentes para todos los usuarios.

    #chmod 555 /home/ com_noche (por ejemplo)

    Ejecutar nuevamente ls l y verificar que se haya modificado.

    De este modo, ningn usuario podr borrar ni crear archivos dentro de esa carpeta.

    Ingresar en una nueva sesin (CTRL + ALT + F1) con el usuario creado (realice lomismo con CTRL + ALT+ F2 y el otro usuario para volver a la primera sesin CTRL +ALT + F7).

  • 7/31/2019 2011 - Guia Entorno Bash y Shell Scripting en LINUX[1]

    11/21

    LINUX: Entorno y Shell scriptingUniversidad Tec nolgica Nac ional - Facultad Regiona l Santa Fe

    Sistemas Operativos | LINUX: Entorno y Shell scripting 11

    Verificar cuntos usuarios estn en el sistema y luego mostrar por pantalla de lasesin que se encuentra qu usuario es Ud. Podr verlo con los comandos siguientes:

    #who

    #whoami

    Gestin del file system

    Crear un sistema de archivos EXT2 en un diskette:

    #mkfs t etx2 /dev/ fd0

    Copiar el archivo /etc/passwd al diskette:

    #mount / dev/ fd0 / mnt

    mensaje / dev/ fd0 est mo ntad o en el direc torio /m nt pa ra lec tura escritura (pued eser slo para lec tura con la op cin r)

    #cp / etc/pa swd /mnt#umount / dev/ fd0

    Utilizacin avanzada de comandos

    Caracteres comodines:

    *: representa 0 o ms caracteres cualquier cosa puede ir ah

    Ir al directorio /usr/bin y ejecute

    ls d *ls d*e

    ?: representa cualquier carcter simple

    crear los siguientes archivos: a1 a2 a3 a4 a5 a6 a7 en el directorio /tmp y llenarlos concualquier contenido

    cd / tmptouch a 1 a2 a3 a4 a5

    ejecutar:

    ls a?

    [ ]: cualquier carcter simple pero con mayor exactitud.

    ls a[42]

  • 7/31/2019 2011 - Guia Entorno Bash y Shell Scripting en LINUX[1]

    12/21

    LINUX: Entorno y Shell scriptingUniversidad Tec nolgica Nac ional - Facultad Regiona l Santa Fe

    Sistemas Operativos | LINUX: Entorno y Shell scripting 12

    ls a[3-5]

    [!]: Igual a lo anterior, pero coincidir con cualquier carcter que no est en la lista

    ls a[!2]

    Redirecciones y tuberas:

    Entrada estndar (descriptor de archivo 0) por defecto asociado al tecladoSalida estndar (descriptor de archivo 1) por defecto asociado a la pantallaError estndar (descriptor de archivo 2) por defecto asociado a la pantalla

    Redireccin de Entrada Estndar:

    igual que el anterior, salvo que si el archivo existe la salida se aade al contenidode dicho archivo.

    ls / usr/inc luye >> ejecutables

    | la salida del comando se emplea como entrada del comando especificado acontinuacin (pipes o tuberas)

  • 7/31/2019 2011 - Guia Entorno Bash y Shell Scripting en LINUX[1]

    13/21

    LINUX: Entorno y Shell scriptingUniversidad Tec nolgica Nac ional - Facultad Regiona l Santa Fe

    Sistemas Operativos | LINUX: Entorno y Shell scripting 13

    ls /usr/ bin | sort | pg

    Redireccin de Error Estndar:

    2> redirige la salida de errores:

    ls /usr/cuanto

    ls / usr/c uanto 2> e rror_ls

  • 7/31/2019 2011 - Guia Entorno Bash y Shell Scripting en LINUX[1]

    14/21

    LINUX: Entorno y Shell scriptingUniversidad Tec nolgica Nac ional - Facultad Regiona l Santa Fe

    Sistemas Operativos | LINUX: Entorno y Shell scripting 14

    El intrprete de comandos

    Para comenzar a trabajar en Linux (como ya habamos visto) deber ingresar:o Nombre de usuario: (so2011 o root en este caso)o Clave: (so2011 o root tambin)

    Cada usuario tiene asignado un directorio de trabajo y un Shell o intrprete decomandos.

    El Shell acepta instrucciones o comandos y los traduce a lenguaje binario nativo. Es elambiente para la interaccin del usuario.

    Esto es lo que hace:

    Qu es el Shell?

    Es el proceso que recibe lo que se escribe en la terminal y lo convierte eninstrucciones para el sistema operativo. Es decir, es el intrprete de comandos.

    Para indicar que se encuentra a la espera de una orden, el sistema operativo muestraun smbolo llamado prompt (habitualmente # para el administrador del sistema root-y $ para los usuarios sin privilegios de administrador)

    Hay varios tipos de shell, varan de acuerdo a las facilidades que ofrecen. En esta guase hablar de Bash. (Existen otros como por ejemplo PERL)

    ... para conocer que shell est utilizando un usuario determinado:

    #echo $SHELL

    ... para investigar un poco ms:

    #man bash

    Para la creacin o escritura de un script o programa en lenguaje C, se puede usarcualquier editor de textos ordinario con que Ud est familiarizado.

    Qu es un Script:

    Es un archivo de texto con un encabezamiento que indica cul es el intrprete decomandos que utiliza. Este archivo, contiene una serie de comandos quehabitualmente son necesarios ejecutar en forma repetida y en conjunto.

    Comandoo ShellScript

    Linux ShellEl Shell convierte aLenguaje Binario

    Ahora, el Kernel deLinux entiende el

    re uerimiento

  • 7/31/2019 2011 - Guia Entorno Bash y Shell Scripting en LINUX[1]

    15/21

    LINUX: Entorno y Shell scriptingUniversidad Tec nolgica Nac ional - Facultad Regiona l Santa Fe

    Sistemas Operativos | LINUX: Entorno y Shell scripting 15

    En la distribucin de LINUX que brinda la ctedra (Debian), estn disponibles loseditores vi, vim, mc y joe pero Ud. puede usar la distribucin y el editor que desee.

    Vi o vim, es el ms utilizado en Unix/Linux. Existen diferentes modos de uso en vi.

    modo comando: las letras realizan acciones: desplazar, recorrer, salir del editor.

    Modo inicial de vi

    modo texto o modo insercin: las teclas ingresan caracteres en el texto.

    modo ltima lnea o ex: las teclas permiten escribir comandos en la ltima lnea.

    Algunos comandos tiles:

    vi archivo_texto: inicia en modo comando editando el archivo archivo_textoi : inserta texto a la izquierda del cursora : inserta a la derechaESC : vuelve a modo comandox : borra el carcter bajo el cursordd : borra una lneah : mueve el cursor un carcter a la izqj : mueve el cursor un lnea hacia abajok : mueve el cursor una lnea hacia arribal : mueve el cursor un carcter a la derecha:w : graba el archivo:q : sale del editor (debe grabarse primero)

  • 7/31/2019 2011 - Guia Entorno Bash y Shell Scripting en LINUX[1]

    16/21

    LINUX: Entorno y Shell scriptingUniversidad Tec nolgica Nac ional - Facultad Regiona l Santa Fe

    Sistemas Operativos | LINUX: Entorno y Shell scripting 16

    Joe: algunas opciones:

    CTRL + KH (ingresa a las opciones del editor)

    CTRL+ KZ vuelve al shell

    Otro editor es: mc (midnight commander) es ms un administrador de archivos que uneditor. Con diversas funcionalidades entre ellas F3/F4 para ver/editar archivos.

  • 7/31/2019 2011 - Guia Entorno Bash y Shell Scripting en LINUX[1]

    17/21

    LINUX: Entorno y Shell scriptingUniversidad Tec nolgica Nac ional - Facultad Regiona l Santa Fe

    Sistemas Operativos | LINUX: Entorno y Shell scripting 17

    Todos estos editores estn disponibles en entorno terminal de caracteres. En modogrfico, existe un editor potente llamado gedit. Cuenta con la facilidad y el uso intuitivodel entorno grfico y con las funcionalidades usuales de cualquier editor similar.

    En el editor que Ud elija, basta con crear un archivo de texto plano con la sintaxisadecuada para cada caso.Por convencin, para crear scripts el nombre de este archivo de texto debe terminarcon .sh, por ejemplo: script.sh.

    En el caso de querer crear un programa en C el nombre de este archivo de texto debeterminar con .c, por ejemplo: programa.c.

    El contenido del archivo debe obedecer la sintaxis adecuada en cada caso sobre todo,en el caso del lenguaje C para poder ser compilado.

    Creando SCRIPTS

    Generar el siguiente archivo, llamado caso1.sh

    #!/bin/bash#es una pruebaecho primer script

    Otorgue permisos de ejecucin. Verifique que permisos tiene el archivo:

    #ls l caso1.sh

  • 7/31/2019 2011 - Guia Entorno Bash y Shell Scripting en LINUX[1]

    18/21

    LINUX: Entorno y Shell scriptingUniversidad Tec nolgica Nac ional - Facultad Regiona l Santa Fe

    Sistemas Operativos | LINUX: Entorno y Shell scripting 18

    -[r w -] [r - -] [r - -][- - -] propietario[- - -] grupo[- - -] otros

    una forma de especificar los permisos es con una secuencia de un nmero octal detres dgitos.

    En este caso para dar permisos de ejecucin a todos (propietario, grupo, otros)

    #chmod 755 caso1.sh

    #chmod +x caso1.sh

    Ejecute el script:

    #./caso1.sh

    Elementos para el desarrollo de un script:

    1- Variables:

    Para definir variables, se escribe su nombre y el valor. (Recordar que existen variablesde entornos predefinidas man 7 environ)

    #clase=2#echo $clase#echo esta es la clase nro: $clase

    2- Paso de argumentos en la lnea de comandos.

    Existen variables predefinidas:

    $0: almacena el nombre del script$1: el primer parmetro pasado al script$2: el segundo, y as....

    Generar el siguiente script: caso2.sh

    #!/bin/sh#paso de parmetros

    echo Este es el script: $0echo Hoy es: $1echo Clase de: $2echo todos los parmetros: $* ... muestra todos los parmetros(otro $# cantidad de parmetros)

  • 7/31/2019 2011 - Guia Entorno Bash y Shell Scripting en LINUX[1]

    19/21

    LINUX: Entorno y Shell scriptingUniversidad Tec nolgica Nac ional - Facultad Regiona l Santa Fe

    Sistemas Operativos | LINUX: Entorno y Shell scripting 19

    Ejecutar de la siguiente forma:

    #./caso2.sh jueves prctica

    3- Ingreso de datos:

    Para que el usuario ingrese algunos datos, se puede utilizar el comando read (ingresode datos en variables)

    read [variable]

    Modificar el caso2, para que en vez de pasar los datos como parmetros al scritp, stemuestre los mensajes solicitando qu da tiene clase de prctica y lo informe.

    #!/bin/sh#ingreso de datos

    echo e \nIngrese el da que tiene prcticaread dia

    echo e \nUd tiene prctica el da $dia

    4- Evaluacin de expresiones, algunos operadores:

    - + suma y resta! negacin* / % multiplicacin, divisin y resto= < > comparaciones== != igualdad, desigualdad& AND^ OR exclusivo| OR&& AND lgico|| OR lgico

    5- Evaluacin de archivos o directorios:

    -d si el archivo es un directorio-f si es un archivo comn-r si tiene activo el permiso de ejecucin-w permiso de escritura activo-x permiso de ejecucin activo.

    6- Estructuras de control.

    Algunos tipos de estructuras son: if, while, for, case

    If lista_de_expresionesthen lista_de_sentencias[elif lista_de_sentencias

    then lista_de_sentencias]

  • 7/31/2019 2011 - Guia Entorno Bash y Shell Scripting en LINUX[1]

    20/21

    LINUX: Entorno y Shell scriptingUniversidad Tec nolgica Nac ional - Facultad Regiona l Santa Fe

    Sistemas Operativos | LINUX: Entorno y Shell scripting 20

    while lista_de_expresionesdo expresionesdone

    for variable in word...

    do lista_de_expresionesdone

    Generar los siguientes scripts y ejecutarlos:

    1. caso3.sh

    #!/bin/bash#uso while

    #para que el ciclo se cumpla la primera vezopcion=3

    while [ $opcion != 0 ]doecho e \nIngrese un nmero [ 0 para salir ]:read opciondone

    2. caso4.sh

    #!/bin/bash#uso for

    for x in a e i o udoecho e \nVocales: $x

    done

    Ejercicios para resolver:

    1 ejem1

    El script recibe como parmetro el nombre de un directorio (/usr por ejemplo)

    Deber almacenar en el archivo contenido todos los nombres de archivos y en casode tener, tambin los nombres de archivos de sus subdirectorios.

    # !/bin/b ash# redireccin de salida

    ls R $1 > co ntenid o

  • 7/31/2019 2011 - Guia Entorno Bash y Shell Scripting en LINUX[1]

    21/21

    LINUX: Entorno y Shell scriptingUniversidad Tec nolgica Nac ional - Facultad Regiona l Santa Fe

    Sistemas Operativos | LINUX: Entorno y Shell scripting 21

    2 ejem2

    El script leer por pantalla un valor, si ese nmero es distinto a 15 mostrar unmensaje diciendo el valor no es igual a 15 en caso contrario dir que es igual

    # !/bin/b ash

    # Uso d e e structura c ondic iona lec ho e \ nIngrese un nmero: rea d numeroif [ $numero = 15 ]then

    ec ho e \ nEl nmero es igua l a 15else

    ec ho e \ nEl nmero $numero es distinto de 15fi