Linux/Unix Shell Scripting - Script en Bash que devuelve el mes correspondiente a un número

 
Vista:
sin imagen de perfil

Script en Bash que devuelve el mes correspondiente a un número

Publicado por Joel (7 intervenciones) el 05/05/2015 02:07:01
Buenas! Tengo que hacer un script con un "bucle for" que reciba un numero del 1 al 12 y que para cada valor devuelva el mes correspondiente a ese número. Ej. si ingreso el número 3 devuelva marzo y finalice el script.

Hasta ahora he realizado lo siguiente pero algo me falta o algo falla y no se que es?

1
2
3
4
5
6
7
8
9
10
11
12
13
#!/bin /bash
 
i=i+1
echo "Ingrese el numero correspondiente al mes"
read m
 
for i in enero febrero marzo abril mayo junio julio agosto septiembre octubre noviembre diciembre
 
do
 
if
     $m == 1 ;
     echo $i

Desde ya gracias por su ayuda
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
sin imagen de perfil

Script en Bash que devuelve el mes correspondiente a un número

Publicado por Jonatan Leopoldo (7 intervenciones) el 05/05/2015 14:47:38
Gracias xve . Existe alguna manera de insertarle un bucle "for" a ese script ?
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de xve
Val: 104
Oro
Ha mantenido su posición en Linux/Unix Shell Scripting (en relación al último mes)
Gráfica de Linux/Unix Shell Scripting

Script en Bash que devuelve el mes correspondiente a un número

Publicado por xve (309 intervenciones) el 05/05/2015 15:03:01
No se a que te refieres... un bucle para que vaya solicitando meses sin parar?
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil

Script en Bash que devuelve el mes correspondiente a un número

Publicado por joel (7 intervenciones) el 05/05/2015 15:18:12
No tiene mucha logica pero es lo que me piden supungo que se le podria poner un break
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de barna_rasta
Val: 22
Ha aumentado su posición en 2 puestos en Linux/Unix Shell Scripting (en relación al último mes)
Gráfica de Linux/Unix Shell Scripting

Script en Bash que devuelve el mes correspondiente a un número

Publicado por barna_rasta (42 intervenciones) el 05/05/2015 17:25:09
Hola Joel,
tal i como comenta xve, es un poco confusa la situacion, pero ....................... siendo muy requetebuscado
forzar lo que tu deseas quizas es plantearlo cargado un array con el "bucle" y posteriormente
leer el valor del array con el valor del "read".

1
2
3
4
5
6
7
8
9
10
for i in enero febrero marzo abril mayo junio julio agosto septiembre octubre noviembre diciembre
do
###### a===> valor numerico del indice del array 
a=$a+1
###### cargamos el valor ALFA para la variable "mes" del indice "a" 
mes[a]=$i
done
 
###### leeemos el valor que contiene "mes" del indice entrado por teclado.
echo ${mes[$m]}

http://www.tutorialspoint.com/unix/unix-using-arrays.htm
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar
sin imagen de perfil

Script en Bash que devuelve el mes correspondiente a un número

Publicado por Jonatan Leopoldo (7 intervenciones) el 05/05/2015 17:53:20
Gracias gente completamente agradecido!.

1
2
3
4
5
6
7
8
9
10
11
12
#!/bin/bash
 
echo "Ingrese el número correspondiente al mes"
 
read m
 
for i in enero febrero marzo abril mayo junio julio agosto septiembre octubre noviembre diciembre
do
a=$a+1
mes[a]=$i
 
echo ${mes[$m]}
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Script en Bash que devuelve el mes correspondiente a un número

Publicado por Tom (361 intervenciones) el 06/05/2015 18:08:32
Otra aproximación:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
#!/bin/bash
 
declare -a meses=(enero febrero marzo abril mayo junio julio agosto septiembre octubre noviembre diciembre)
 
function nombreMes {
	v=$(($1 - 1))
	echo ${meses[$v]:-ERROR}
}
 
M=1
until [ $M -eq 0 ]
do
	read -p "Prueba un numero de mes del 1 al 12 (0 para terminar): " M
	[ "$M" -gt 0 ] && echo $(nombreMes $M)
done
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar