Manual Referencia Shell Script
Manual Referencia Shell Script
TEMA 3
PROGRAMACIÓN DE LA SHELL
1 INTRODUCCIÓN ................................................................................................................ 2
2 ECHO .................................................................................................................................... 2
3 TRABAJANDO CON VARIABLES ................................................................................... 2
3.1 ASIGNAR VALORES A VARIABLES ...................................................................... 2
3.2 READ ............................................................................................................................ 2
3.3 VARIABLES ESPECIALES O INTERNAS................................................................ 3
4 PARÁMETROS POSICIONALES....................................................................................... 3
5 SHIFT .................................................................................................................................... 4
6 EXPR..................................................................................................................................... 4
7 TEST ..................................................................................................................................... 5
7.1 CADENAS CON VALORES NUMÉRICOS. .............................................................. 5
7.2 SOBRE CADENAS DE CARACTERES ..................................................................... 6
7.2.1 VERIFICA SI DOS CADENAS SON O NO IDENTICAS. .................................... 6
7.2.2 VERIFICA LA LONGITUD DE UNA CADENA. .................................................. 7
7.3 SOBRE TIPOS DE FICHEROS: .................................................................................. 7
8 COMANDO IF ...................................................................................................................... 8
9 COMANDO CASE ............................................................................................................... 8
10 COMANDO WHILE ............................................................................................................ 9
11 COMANDO UNTIL ........................................................................................................... 10
12 FOR ....................................................................................................................................... 9
13 BREAK, CONTINUE Y EXIT ........................................................................................... 10
Programación de la shell 2
1 INTRODUCCIÓN
El shell es un intérprete de órdenes, pero no sólo es eso ya que los intérpretes de órdenes de
UNIX son auténticos lenguajes de programación. Como tales, incorporan sentencias de control
de flujo, sentencias de asignación, funciones etc. Los programas de shell no necesitan ser
compilados, en este caso el propio shell los interpreta línea a línea. A estos programas se les
conoce con el nombre de shell script.
La forma de escribir un programa de shell consiste en crear un archivo de texto con un editor (por
ejemplo, editor vi). Este archivo contendrá las órdenes que el shell va a ir interpretando y
ejecutando. Una vez que tenemos el archivo de texto es necesario darle al archivo el atributo de
ejecución para ello hay que emplear la orden chmod.
Este lenguaje se caracteriza por:
Maneja variables.
Dispone de instrucciones que manejan bucles.
Permite parámetros de sustitución.
Se pueden utilizar los comandos de Unix dentro de los programas.
2 ECHO
echo [-n] [cadena]
Sirve para visualizar cadenas de caracteres
Opciones:
-e Interpreta los siguientes códigos
\c Evita el salto de línea.
$ echo –e “Hola $nom:\c”
\n Inserta un salto de línea.
$echo –e “Buenos \n días”
\t Inserta un salto de tabulador.
read ape
echo $nom
echo $ape
echo “Introduzca nombre y apellidos: “
read n a
echo $n $a >>personas
4 PARÁMETROS POSICIONALES
Toman valores externos al programa. Cuando se llama a un programa, el shell referencia
el nombre del programa ($0), al argumento1 ($1) ... hasta el argumento9 ($9). El shell utiliza unas
variables ($0,$1...$9) para referirse a cada argumento que pasado al programa.
$ cat fich1 fich2
$0 $1 $2
$ renombrar
clear
Programación de la shell 4
5 SHIFT
Se utiliza para cuando necesitamos utilizar más de 9 argumentos. Este comando nos
permite desplazar el contenido de los argumentos una posición hacia la izquierda.
$ desplazar uno dos tres cuatro
clear echo $1 $2 $3 echo la
variable \* vale: $* echo la
variable \# vale: $# shift
echo $1 $2 $3
echo la variable \* vale: $*
echo la variable \# vale: $#
6 EXPR
Las variables en el shell son alfanuméricas y para trabajar con numéricas recurrimos a
esta orden. Admite los siguientes operadores:
Operadores aritméticos
+ - * / %
Hay que tener en cuenta lo siguiente:
Sólo admite números enteros naturales.
Hay que dejar espacio entre la expresión y entre los términos.
Cuando se quiera cambiar la precedencia de los operadores hay que introducir ( )
Los símbolos: *, (, ) tienen un significado especial para el shell, por lo que deben ser
precedidos por el símbolo \
$ operaciones
echo Multiplicacion de dos variables
echo Introduce la primera variable:
read arg1
echo Introduce la segunda variable:
read arg2
resultado=`expr $arg1 / $arg2`
echo $resultado
Programación de la shell 5
7 TEST
test expresión
[ expresión ]
Permite evaluar las expresiones y generar un valor de retorno. Cuando se ejecuta test y
retorna un código= 0 la expresión es evaluada como cierta. Cuando retorna un valor distinto de 0
es falsa.
$ comparar
Las primitivas –gt ... se pueden combinar con operadores lógicos en una expresión test a la
hora de evaluar ficheros, cadenas o números.
Operadores:
-a Se cumple si las dos expresiones se cumplen.
Ej.: if [5 –gt 0 –a 8 –gt 3]
-o Se cumple en caso de que una de las expresiones se cumpla.
Ej.: if [5 –gt 0 –o 8 -gt 3]
! Niega una expresión
Primitiva:
= Comprueba la igualdad de dos cadenas.
!= Comprueba que son distintas.
echo Introduzca clave
read clave
if [ “$a” = “asdf” ]
then
ls
else
echo clave incorrecta
fi
-z La cadena es nula.
8 COMANDO IF
if <condición> if <condición>
then then
<comandos> <comandos>
else elif <condicion2>
<comandos> then
fi <comandos>
else
<comandos>
fi
9 COMANDO CASE
case <variable> in
opción 1) comando1
comandon;;
opcion 2) comando1
comandon;;
*) ninguna de las anteriores
esac
Programación de la shell 9
10 FOR
for <variable> in <lista_valores>
do
<comandos>
done
Repite una serie de comandos en función de una condición, es decir, repite tantas veces
como elementos tenga la lista proporcionada.
for i in $@
do
mail $i < carta
done
for i in a b c d
do
echo Valor es $i
done
11 COMANDO WHILE
while condición do
<comandos>
done
Programación de la shell 10
12 COMANDO UNTIL
El bucle se ejecuta hasta que se cumple la condición indicada.
until condición
do
<comandos>
done
$ hasta uno dos tres cuatro
$ hasta uno dos tres cuatro cinco seis
until [ $# -eq 0 ]
do
cat $1
shift
done