Consulta if/else
Publicado por javier (3 intervenciones) el 26/03/2014 17:35:41
Buenas tardes.
Estoy haciendo un ejercicio en shell script en el cual tengo que introducir y comprobar una fecha y un numero. Ahora quiero hacerlo introduciendo esas variable cuando llamo al script. Mi codigo es el siguiente:
El programa se llama prueba2 y al llamarlo pongo:
prueba2 25-10-1993 00005
pero me da fallo en el primer else que meto. Alguna idea de como tengo que concateras los if then /else para que vaya entrando en lso bucles??
Saludos y gracias
Estoy haciendo un ejercicio en shell script en el cual tengo que introducir y comprobar una fecha y un numero. Ahora quiero hacerlo introduciendo esas variable cuando llamo al script. Mi codigo es el siguiente:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
if [ $# -eq 2 ] then
a=$( echo $1 | cut -c 1-2)
b=$(echo $1 | cut -c 4-5)
c=$(echo $1 | cut -c 7-10)
if [ $a -ge 1 -a 31 -ge $a -a $b -ge 1 -a 12 -ge $b -a $c -ge 1000 -a 9999 -ge $c ] then
echo "la fecha $a-$b-$c es correcta"
else
echo "la fecha es incorrecta"
fi 2>/dev/null
if [ $2 -ge 10000 -a 99999 -ge $2 ] then
echo "el codigo $2 es correcto"
else
echo 'El codigo es incorrecto'
fi 2>/dev/null
else
if [ $# -eq 1 ] then
a=$( echo $1 | cut -c 1-2)
b=$(echo $1 | cut -c 4-5)
c=$(echo $1 | cut -c 7-10)
if [ $a -ge 1 -a 31 -ge $a -a $b -ge 1 -a 12 -ge $b -a $c -ge 1000 -a 9999 -ge $c ] then
echo "la fecha $a-$b-$c es correcta"
else
echo "la fecha es incorrecta"
fi 2>/dev/null
echo 'Introduce el codigo del tren con formato NNNNN'
read codigo
if [ $codigo -ge 10000 -a 99999 -ge $codigo ] then
echo "el codigo $codigo es correcto"
else
echo 'El codigo es incorrecto'
fi 2>/dev/null
else
'Introduce una fecha con formato DD-MM-YYYY'
read fecha
a=$( echo $fecha | cut -c 1-2)
b=$(echo $fecha | cut -c 4-5)
c=$(echo $fecha | cut -c 7-10)
if [ $a -ge 1 -a 31 -ge $a -a $b -ge 1 -a 12 -ge $b -a $c -ge 1000 -a 9999 -ge $c ] then
echo "la fecha $a-$b-$c es correcta"
else
echo "la fecha es incorrecta"
fi 2>/dev/null
echo 'Introduce el codigo del tren con formato NNNNN'
read codigo
if [ $codigo -ge 10000 -a 99999 -ge $codigo ] then
echo "el codigo $codigo es correcto"
else
echo 'El codigo es incorrecto'
fi 2>/dev/null
fi 2>/dev/null
El programa se llama prueba2 y al llamarlo pongo:
prueba2 25-10-1993 00005
pero me da fallo en el primer else que meto. Alguna idea de como tengo que concateras los if then /else para que vaya entrando en lso bucles??
Saludos y gracias
Valora esta pregunta


0