Introducción a Shell Script

| 2013-05-29 | No hay comentarios »

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.

Acerca del autor: Rodrigo Paszniuk

Ingeniero Informático, amante de la tecnología, la música, el ciclismo y aprender cosas nuevas.

Posts Relacionados

  • Ejercicios resueltos en Shell Script



SEGUÍNOS EN FACEBOOK


GITHUB