0% encontró este documento útil (0 votos)
40 vistas12 páginas

LSO - Unidad - 08 - Script Parte 2

Este documento describe las estructuras de control y variables utilizadas en scripts de shell de Linux. Explica cómo declarar variables, capturar la salida de comandos y operaciones aritméticas en variables, y el comando read. Además, detalla las estructuras if/else, case, while, until y for para controlar el flujo de ejecución, y provee ejemplos de su sintaxis y funcionamiento.
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
40 vistas12 páginas

LSO - Unidad - 08 - Script Parte 2

Este documento describe las estructuras de control y variables utilizadas en scripts de shell de Linux. Explica cómo declarar variables, capturar la salida de comandos y operaciones aritméticas en variables, y el comando read. Además, detalla las estructuras if/else, case, while, until y for para controlar el flujo de ejecución, y provee ejemplos de su sintaxis y funcionamiento.
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd
Está en la página 1/ 12

Laboratorio de Sistemas

Operativos I

Scripts – Comandos útiles y Estructuras


de control
Declaración de variables
 Al no tener tipo, no es necesario declararlas. Una variable
(un nombre y su valor asociado) queda registrada en su
entorno cuando le asignamos un valor por primera vez. Por
ejemplo:
#!/bin/bash

nombre=MARIA
LIMITE=350
mensaje=“Error de Ejecución”

1) Al declarar/inicializar una variable, no debemos dejar ningún espacio ni a la derecha


ni a la izquierda del signo”=”.
2) Los nombres de las variables son case sensitive.
3) Para almacenar una cadena que contenga espacios u otros caracteres especiales en
una variable, debemos usar barra inversa para anular el comportamiento especial
de un carácter o bien comillas dobles ( ” ) o simples ( ‘ ) para encerrar el texto que
contiene varios caracteres especiales.
Otras formas de declarar variables
 Capturar la salida de un comando:
variable2=`comando` o también variable2=$(comando)

 El comando junto con sus parámetros (puede ser la llamada a otro script)
debe ir encerrado entre acentos graves o precedido por $ entre ().
 Lo que el comando mostraría por pantalla queda almacenado dentro de la
variable, aunque consista en varias líneas de texto.
 La forma $(… ) permite anidamiento de sustituciones.

 Capturar el resultado de una operación aritmética


variable2=$[ $variable2 * 2 + 1 ]
 Se almacena en variable2 el resultado de una operación aritmética (sólo para
números enteros). En el ejemplo se multiplica el valor actual de la variable
($variable2) por 2 y se le suma 1, el resultado modifica el valor de variable2.
Comando read
 Lee una línea de entrada estándar y asigna las palabras a
las variables que sigan al comando read. Puede
especificarse un mensaje que se presentará como prompt
antes de empezar a leer con la opción –p.
 Ejemplos:
#!/bin/bash

echo “Ingrese una opción: ”


read opcion
echo “Opción elegida: $opcion ”

#!/bin/bash

read -p “Ingrese una opción: ” opcion


echo “Opción elegida: $opcion ”
Variable no inicializada
 Si en el código se hace referencia a una variable que no ha sido inicializada previamente,
en general no ocurrirá ningún error, simplemente será sustituido por una cadena vacía.
 Esta circunstancia podría generar un error en tiempo de ejecución si al sustituir la
variable por “nada” la sintaxis del comando en el que aparece deja de ser correcta.
 Ejemplo:
echo “Introduzca su nombre”
read NOMBRE
if [ $NOMBRE = "Antonio" ] then
echo “Bienvenido, estimado administrador”
else
echo Hola $NOMBRE
fi

 Si el usuario pulsa INTRO, la variable NOMBRE quedará vacía.


 El problema aparecerá en el if [ $NOMBRE = "Antonio" ] ya que la sustitución de
$NOMBRE dejará el comando como if [ = "Antonio" ] y eso es una forma no
admitida para una comparación y aparecerá un mensaje de error.
 Se puede solucionar encerrando la variable entre comillas dobles ( ” ), de este
modo en caso de que se sustituya por “nada” no se estropea la sintaxis de la
comparación:
 if [ "$NOMBRE" = "Antonio" ]
Estructuras para controlar el flujo
de ejecución de un script
estructura funcionamiento
if / else Ejecuta una serie de comandos dependiendo si
una condición se cumple o no.
case Ejecuta una o varias listas de comandos
dependiendo del valor de una variable
while Ejecuta una serie de comandos mientras una
condición se cumpla.
until Ejecuta una serie de comandos hasta que una
condición se cumpla.
for Ejecuta una serie de comandos un número
determinado de veces.
if / else
 Estructura Ejemplo
read opcion

if condición1 then if [ opcion –eq 1]; then


echo “Buenos días”
sentencias ...
elif [ opcion –eq 2 ]; then
[elif condición2 then
echo “Buenas tardes”
sentencias ...]
elif [ opcion –eq 3 ]; then
[else
echo “Buenas noches”
sentencias ...] else
fi echo “Adiós”
fi
Diagrama de flujo if / else
case
 Estructura Ejemplo

case expresión in read opcion


caso_1 case opcion in
sentencias;; 1) echo “Buenos días” ;;

caso_2 2) echo “Buenos tardes” ;;

sentencias;; 3) echo “Buenos noches” ;;


*) echo “Adiós” ;;
. . .
esac
esac

 Ejemplo.case y ejemplo.case2
while
 Estructura

while condición
do
sentencias
. . .
done

 Ejemplo: ejemplo.while
until
 Estructura

until condición
do
sentencias
. . .
done
for
 Estructura Ejemplo

#!/bin/bash
for var in 1 2 3 .. N
do
for i in {0..10..2}
sentencias
do
. . .
echo “Hola $i veces"
done done

 {1..N} en un rango
 {1..10..2} desde 1 hasta 10 con incremento de 2

También podría gustarte