bash
o
M´dulo de Bash scripting
o
Construcciones if-then-else-fi y
comparaciones.
Por Jorge Fuertes
http://jorgefuertes.com
c 2009 Jorge Fuertes Alfranca
Revisado a 15 de mayo de 2009
1
´
Indice
1. Introducci´n
o
3
2. Operadores comparativos
2.1. Comparaciones num´ricas . . . . . . . . . . . . . . . . . . . . . .
e
2.2.Comparaciones alfanum´ricas . . . . . . . . . . . . . . . . . . . .
e
3
3
4
3. Ejercicios
3.1. Enunciados . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
3.2. Soluciones . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
5
5
7
4. Sobre esta unidad did´ctica
a
4.1. Notas y advertencias . . .
4.2. Derechos . . . . . . . . . .
4.3. Agradecimientos . . . . .
4.4.Revisiones . . . . . . . . .
.
.
.
.
.
.
.
.
.
.
.
.
2
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
16
16
16
16
16
1.
Introducci´n
o
Lasconstrucciones if sirven para reaccionar de distinta forma dependiente
de una condici´n. Por ejemplo, en pseudo c´digo, dir´
o
o
ıamos:
pon valor=1
si valor es mayor que 0
entonces
decir "El valor es mayor que cero."
en otro caso
decir "El valor no es mayor que cero."
fin
Como se puede ver a simple vista lo que hacemos es poner el n´mero 1 dentro
u
de la variable valor . Despu´s miramossi dicha variable es mayor que cero, y
e
de ser as´ pasamos a ejecutar el bloque entonces y si no lo es, hipot´ticamente,
ı
e
pasar´
ıamos a ejecutar el bloque en otro caso.
Esto puesto en idioma Bash es as´
ı:
#!/bin/bash
let VALOR=1
if [ $VALOR -gt 0 ]
then
echo "El valor es mayor que cero."
else
echo "El valor no es mayor que cero."
fi
Nota: Son importantes los espacios antesy despu´s de los corchetes.
e
Cambia poco sobre el pseudoc´digo. Salvando que las sentencias son en ingl´s,
o
e
s´lo hay que tener cuidado con los corchetes que encierran la comparaci´n, con
o
o
el operador de comparaci´n en s´ y con que, en Bash, cuando escribimos en una
o
ı
variable la llamamos s´lo por su nombre, pero cuando queremos leer su conteo
nido debemos especificar un signode d´lar al inicio de la misma, por ejemplo
o
¨$VALOR¨.
2.
Operadores comparativos
Son los operadores que podemos utilizar en las sentencias ”if ” para realizar
las comparaciones:
2.1.
Comparaciones num´ricas
e
Operadores para comparaciones entre n´mero o variables con contenido
u
num´rico.
e
3
Op:
Comparaci´n:
o
Traducci´n:
o
Ejemplo:
-lt
-le
-gt-ge
-eq
-ne
-z
lesser than
lesser than o equal to
greater than
greater than or equal to
equal to
Not equal to
is zero
menor que
menor o igual que
mayor que
mayor o igual que
igual a
no es igual a
es cero
if
if
if
if
if
if
if
2.2.
[
[
[
[
[
[
[
$VAR -lt 5
$VAR -le 7
$VAR -gt 5
$VAR -ge 4
$VAR -eq 8
$VAR -ne 7
-z $VAR ]
]
]
]
]
]
]Comparaciones alfanum´ricas
e
Operadores para comparaciones entre cadenas de texto.
Op:
==
!=
<
>
-z
Comparaci´n:
o
Traducci´n:
o
Ejemplo:
equal to
not equal to
lesser than
greater than
zero lenght
igual que
distinto de
alfab´ticamente anterior a
e
alfab´ticamente posterior a
e
est´ vac´
a
ıa
if
if
if
if
if
[
[
[
[
[
"$VAR" == "hola" ]
"$VAR" !="hola" ]
"$VAR" < "hola" ]
"$VAR" > "hola" ]
-z "$VAR" ]
Nota: Son importantes los espacios antes y despu´s de los corchetes.
e
4
3.
Ejercicios
3.1.
Enunciados
Cree un script o gui´n de Bash para cada uno de los ejercicios, y ll´melo
o
a
ejercicio-num.sh, siendo num el n´mero de ejercicio:
u
1. Pida dos n´meros por pantalla y que diga cual de ellos es menor1 .
u...
Regístrate para leer el documento completo.