• ¿Quieres apoyar a nuestro foro haciendo una donación?, entra aquí.

Ayuda Con Script

Engelin

Ratona
Registrado
2007/12/25
Mensajes
20.626
Sexo
Hembra
Hola, soy nueva en esto de la programación.
Necesito hacer un pequeño programa, en BASH que reconozca una palabra y un numero, y dependiendo de ello arroje un "resultado" (Perdón por no utilizar lenguaje técnico, pero de verdad soy muy nueva en esto). Por ejemplo, supongamos que el programa debe reconocer los días de la semana y un número.

Lunes 1
Lunes 23
Martes 14
Martes 20
Miercoles 4
Miercoles 31

Si el día es Lunes y el número es menor que 20, arroje cierto resultado A
Si el día es Lunes y el número es mayor que 20, arroje cierto resultado B
Lo mismo para los demás días.

Hice uno muy sencillo de una variable hace unos días.

Código:
#!/bin/bash
echo "Por favor, introduzca un numero entre 1 y 5:"
read A
if [ $A == 1 ]; then
echo "El numero es 1"
elif [ $A == 2 ]; then
echo "El numero es 2"
elif [ $A == 3 ]; then
echo "El numero es 3"
elif [ $A == 4 ]; then
echo "El numero es 4"
elif [ $A == 5 ]; then
echo "El numero es 5"
else
echo "Ese no es un numero entre 1 y 5"
fi

Mi problema ahora, es que no sé como hacer que hayan dos variables y tampoco sé cómo decirle que "lea" las dos, y tampoco sé cómo escribirlo entre los [ ].

Lo que tengo que hacer es un poco más complicado que esto, no precisamente con los días de la semana y todo eso, pero es la misma idea. Tampoco quiero que hagan mi tarea :lol2:

Agradecería mucho la ayuda.

Pd: No estudio programación. Estudio pedagogía, pero no en computación. :P
Pd2: Lo siento para los que se sintieron ofendidos con esta básica pregunta :'(
 
#!/bin/bash
echo "Introduce un día de la semana(sin mayúsculas ni tildes):"
read dia
if [ $dia == lunes -o $dia == martes -o $dia == miercoles -o $dia == jueves -o $dia == sabado -o $dia == domingo ]; then
echo "Introduce un número entre 1 y 31:"
read num
if [ $num -ge 1 -a $num -le 20 ]; then
echo "el dia es $dia y está entre 1 y 20, por lo que el resultado es A"
elif [ $num -gt 20 -a $num -le 31 ]; then
echo "el dia es $dia y está entre 21 y 31, por lo que el resultado es B"
else
echo "el número no está entre el rango permitido de 1 a 31. Saliendo."
exit 0
fi
else
echo "El dia está mal ingresado. Saliendo."
exit 0
fi
exit 0

solo permite los dias de la semana escritos sin mayúsculas ni tildes y además, si el número ingresado está entre 1 y 20 te da resultado A, sino, el número debe estar entre 21 y 31 lo que da resultado B, sino el número no sirve.

eso era?
 
siiiiiiiiiii :D
deja procesarlo en mi cabecita y aplicarlo en mi tarea... ahí te cuento como me fue :D
 
oye y lo de las mayúsculas supongo que se puede arreglar con tr o no? :o
 
o lo que puedes hacer eso algo como esto

resultado=`tr palabra`

eso significa que a palabra le estai aplicando tr y el resultado lo vas a guardar en la variable resultado
 
o lo que puedes hacer eso algo como esto

resultado=`tr palabra`

eso significa que a palabra le estai aplicando tr y el resultado lo vas a guardar en la variable resultado

Mira es que es más complicado que eso... tengo que hacer un programa que te diga tu signo zodiacal... entonces mi idea es que reconozca primero el mes, luego el día y después te indique el signo y asdf. El problema es que en un principio, el mes puede ser escrito como Febrero/febrero/FEBRERO/fEbRERo... y eso para cada mes... entonces no es solo una palabra la que quiero traducir a letras minusculas me entiendes?

entonces mi duda es que al preguntar el mes y el usuario ingrese el mes, Cómo hago para que la westión lea lo que traduje?
Yo pongo que traduzca primero pero no sé cómo hacer que lea ese resultado... haciendolo así solo me traduce lo que le indico, pero no "lee" el resultado de la traducción..
 
ya, en ese caso lo que haría yo es mostrar una lista enumerando los meses, y pedir ingresar el número correspondiente al mes que me interesa, y trbajar con ese número, y no con el nombre del mes como tal, cachai?

te dejo la idea para que lo pienses, si te complica mañana en algún momento posteo el código
 
Código:
#!/bin/bash
echo -e "1\tEnero\n2\tFebrero\n3\tMarzo\n"
echo "Ingrese número del mes a consultar:"
read mes
echo "ingresaste el número $mes"
###blabla, el resto creo que está en el código anterior
exit 0

eso
 
Código:
#!/bin/bash
echo -e "1\tEnero\n2\tFebrero\n3\tMarzo\n"
echo "Ingrese número del mes a consultar:"
read mes
echo "ingresaste el número $mes"
###blabla, el resto creo que está en el código anterior
exit 0

eso

tu dices ingresar un número en vez de un mes?... Eso me bajaría muchos puntos en la tarea :llanto:
 
si, eso mismo, pero si te baja puntos mejor no, haha

me tinca usar sed para transformar cualquier mayúscula a minúscula
 
oye mira, usa este codigo introduciendo una palabra con mayusculas

Código:
echo "Introduce un día de la semana:"
read dia_tmp
dia=`echo $dia_tmp | sed -e 's/\(.*\)/\L\1/'`
echo $dia

avisa cómo te va con ese
 
oye mira, usa este codigo introduciendo una palabra con mayusculas

Código:
echo "Introduce un día de la semana:"
read dia_tmp
dia=`echo $dia_tmp | sed -e 's/\(.*\)/\L\1/'`
echo $dia

avisa cómo te va con ese

es tardeee ya envié mi tarea ajuajauaj oye pero agradezco mucho tu ayuda... te envié un mp... Ojalá puedas probarla :) saludos y gracias nuevamente!!
 
Volver
Arriba