El entorno del intérprete de comandos nos permite realizar archivos ejecutables con funcionalidad semicompleja de manera similar a los archivos batch de D.O.S
Existen 2 tipos de variables:
· Las variables de sistemas en Linux siempre se declaran en mayúsculas.
· Las variables de usuarios en Linux son declaradas en minúsculas.
Para la utilización de las variables se debe preceder al nombre el signo «$».
Nota: Para que un archivo sea ejecutable en Linux debe tener la propiedad de x para los usuarios (Utilizar el comando chmod).
echo: comando que permite mostrar (imprimir) en contenido de una variable.
Por ejemplo:
$ a=10
$ echo » a vale $a»
También los scripts pueden recibir parámetros. A estos se los identifican con el
«$» y en lugar de un nombre se le establece un Nro. Así $0 es el nombre del
archivo, $1 el primer parámetro, y así sucesivamente.
Condiciones
Condiciones: las condiciones se pueden utilizar en las estructuras selectivas y repetitivas.
Para realizar las comparaciones en las condiciones se pueden utilizar el comando test o bien expr[ ].
Así para operadores matemáticos:
-eq: es igual. (expr[5 -eq 6])
-ne: no igual (distinto).
-lt: menor que.
-le: menor o igual que.
-gt: mayor que.
-ge: mayor o igual que.
Para comparaciones de cadenas:
string1 = string2: verdadero si ambos strings son iguales.
string1 != string2: verdadero los strings no son iguales.
string1: verdadero si no es nulo o no definido.
-n string1: verdadero se no es nulo y existe.
-z string1: verdadero si es nulo y existe.
Instrucción condicional IF
Así como en otros lenguajes de programación, la estructura selectiva IF puede
ser utilizada de manera similar en la programación de shell script.
Syntax:
if condicion
then
instrucciones
…
fi
condicion: es la evaluación logica que debe cumplirse.
instrucciones: es el conjunto de comandos que se ejecutaran en el caso que se cumpla la condición.
Ejemplo:
if test $1 -gt 0
then
echo «$1 es positivo»
else
echo «$1 es negativo»
fi
Instrucción de control CASE
Así como en otros lenguajes de programación, la estructura selectiva CASE
puede ser utilizada de manera similar en la programación de shell script.
Syntax:
case variable in
caso1)
instrucciones
…;;
caso2)
instrucciones
…;;
*)
instrucciones
…;;
esac
variable: es la variale que se utiliza en el control para las iteraciones.
casoN: son cada uno de los valores tomados para la evaluacion de la condicion.
*: conjunto de instrucciones que se ejecutaran en caso de que no se cumpla la condicion
para los valores casoN.
instrucciones: es el conjunto de comandos que se ejecutaran para cada iteración.
Ejemplo:
renta=»coche»
case $renta in
«coche») echo «el valor de renta es de \$20 por Km.»;;
«van») echo «el valor de renta es de \$10 por Km.»;;
«camioneta») echo «el valor de renta es de \$5 por Km.»;;
*) echo»disculpe pero no tenemos $renta para rentar.»;;
esac
Instrucción de control FOR
Así como en otros lenguajes de programación, la estructura repetitva FOR puede
ser utilizada de manera similar en la programación de shell script.
Syntax:
for variable in lista
do
instrucciones
…
done
variable: es la variale que se utiliza en el control para las iteraciones.
lista: son cada uno de los valores que la variable ira tomando en las distintas iteraciones.
instrucciones: es el conjunto de comandos que se ejecutaran para cada iteración.
Ejemplo:
for i in 1 2 3 4 5
do
echo «Bienvenido $i vez/veces»
done
Instrucción de control WHILE y UNTIL
Así como en otros lenguajes de programación, la estructura repetitva WHILE
puede ser utilizada de manera similar en la programación de shell script.
Syntax While:
while [ condicion ]
do
instrucciones
…
done
La instrucción until tiene la forma general :
until lista-de-comandos1
do
lista-de-comandos2
done
condicion: es la evaluacion que debe cumplirse para que se realice determinada
funcionalidad.
instrucciones: es el conjunto de comandos que se ejecutaran para cada iteración.
Ejemplo while:
n=7
while [ $i -le 10 ]
do
echo «$n * $i = `expr $i \* $n`»
i=`expr $i + 1`
done
Instrucción de control READ
Así como en otros lenguajes de programación, existe un comando para ingresar
datos desde el teclado, este comando es READ y se utiliza da la siguiente
manera:
Syntax:
read variable1, variable2, …, variableN
variables: se pueden ingresar mas de una variable en un comando read, ellas solo deben
estar separadas por «,».
Ejemplo:
echo «Ingrese su Nombre:»
read nom
echo «Hola $nom»
Las instrucciones de controles break y continue.
La instrucción break termina la ejecución del bucle mas interior causando la ejecución de la instrucción done mas cercana.
Para salir del nivel n, usa : break n, esto causa la ejecución de la instrucción done n.
El comando continue causa la ejecución de la instrucción while, until o for en la cual comienza el bucle que
contiene el comando continue.
Ejemplo :
#!/bin/sh
while echo «Por favor introduce un comando»
read respuesta
do
case «$respuesta» in ‘fin’)
break # no mas comandos
;;
«»)
continue # comando nulo
;;
*)
eval $respuesta # ejecuta el comando
;;
esac
done
Funciones
Las funciones son herramientas poderosas a menudo poco usadas. La sintaxis es:
nombre_funcion ()
{
comandos
}
Dentro de una función los parámetros posicionales $0, $1, etc. son los argumentos de la función (no los
argumentos del script).
Dentro de una función se usa return en lugar de exit.