Linux/Unix Shell Scripting - Script en shell liunux

 
Vista:

Script en shell liunux

Publicado por Kike (2 intervenciones) el 15/02/2007 06:05:41
Estaba revisando y llege a hacer este codigo para el problema siguiente:
Escribir un script de shell que permita ingresar dos números. Tras ingresarlos, el script deberá preguntar que operación se desea realizar con los números (suma, resta, multiplicación, división o promedio). Para el caso de la resta y división, el script deberá validar que el primer número sea mayor que el segundo; en caso de ser menor, se deberá reingresar solamente el primer número.

Mi codigo serìa asi:

#!/bin/bash

echo -n "Ingrese el primer valor para ejecutar operacion:"
read respuesta1

echo -n "Ingrese el segundo valor para ejecutar operacion:"
read respuesta2

echo -n "esciba que operacion desea realizar:"
read operacion

case "$operacion" in

suma)
suma=`expr $respuesta1 + $respuesta2`
echo "La respuesta es: " $suma
;;

resta)
if [ $respuesta1 -lt $respuesta2 ]
then
echo "El primer valor es menor, deseas continuar (s/n):"
read rpta
if [ $rpta == "s" ] && resta=`expr $respuesta1 - $respuesta2`
then
echo "La respuesta es: " $resta
fi
else
resta=`expr $respuesta1 - $respuesta2`
echo "La respuesta es: " $resta
fi
;;

dividir)
if [ $respuesta1 -lt $respuesta2 ]
then
echo "El primer valor es menor, deseas continuar (s/n):"
read rpta
if [ $rpta == "s" ]
then
dividir=`expr $respuesta1 \/ $respuesta2`
echo "La respuesta es:" $dividir
fi
else
dividir=`expr $respuesta1 \/ $respuesta2`
echo "La respuesta es: " $dividir
fi
;;

multiplicar)

multi=`expr $respuesta1 \* $respuesta2`
echo "La respuesta es: " $multi
;;

promedio)
suma1=`expr $respuesta1 + $respuesta2`
p=2
prom=`expr $suma1 \/ $p`
echo "El promedio es :" $prom
;;

esac

****Cualquier sugerencia por fa se los agradeceria muchoo para mejorarlo este codigo.
enrique
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

RE:Script en shell liunux

Publicado por rafael (1 intervención) el 03/09/2008 15:02:48
Hola un placer tengo un tiempito usando linux... Ahorita estoy tratando de hacer un script que sume valores... Realmente quiero que sume fechas, pero creo que es más complicado y no comprendí muy bien lo que estaba leyendo...
Ahora esto lo quiero aprender a hacer porque luego necesito pasar esos valores como parámetros a un archivo namelist de un modelo numérico... Voy a anexar aquí lo que tengo hecho de ese pedazo de suma... y el error que me da a ver que pasa, estoy trabajando en fedora 8...

#!/bin/bash
fecha=$(date '+%Y%m%d')
echo $fecha
year=$(date '+%Y')
echo $year
mes=$(date '+%m')
echo $mes
dia=$(date '+%d')
echo $dia
horas=18
echo $horas
valor=1
echo $valor

suma=`expr$dia + $valor`
echo $suma

newdate=""
newdate=$year$mes$suma$horas
echo $newdate

Y ESTE ES EL ERROR:

[rmundaray@boleita24 Escritorio]$ sh fecha.sh
20080903
2008
09
03
18
1
fecha.sh: line 16: expr03: command not found

20080918
[rmundaray@boleita24 Escritorio]$
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

RE:Script en shell liunux

Publicado por Marco  (1 intervención) el 20/08/2009 22:55:17
Lo que pasa es que debes separar el comando al final.

#!/bin/bash
fecha=$(date '+%Y%m%d')
echo $fecha
year=$(date '+%Y')
echo $year
mes=$(date '+%m')
echo $mes
dia=$(date '+%d')
echo $dia
horas=18
echo $horas
valor=1
echo $valor

suma=`expr $dia + $valor`
echo $suma

newdate=""
newdate=$year$mes$suma$horas
echo $newdate
----
Resultado.

[root@Yepeto script]# ./mifecha.sh
20090820
2009
08
20
18
1
21
2009082118
[root@Yepeto 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

núSumar numeros dados como argumentos

Publicado por Gilberto (1 intervención) el 05/09/2008 01:09:52
Saludos, me he dado de golpes queriendo hacer este script que dice:

Implementar un script que sume x cantidad de números dados como argumentos.
Ejemplo: Que sume a b c d e f g

Si me pueden echar una mano seri de gran ayuda, gracias y saludos
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

RE:núSumar numeros dados como argumentos

Publicado por Javier (1 intervención) el 09/06/2009 22:10:33
Hola,

mira este script puede servirte para sumar x cantidad de números dados como argumentos

#sumar_x.sh
echo Nombre del programa: $0
echo Cantidad de parametros: $#

acum=0;
for VAR in $*
do
acum=`expr $VAR + $acum`
done

echo "Suma Total: "$acum

#fin sumar_x.sh

ejecucion:
>sh sumar_x.sh 1 2 3 4 5 6 7 8 9 10
>Nombre del programa: sumar_x.sh
>Cantidad de parametros: 10
>Suma Total: 55

Saludos.
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

RE:Script en shell liunux

Publicado por jose alberto (1 intervención) el 05/01/2009 19:05:55
muy buen scritpt para principiantes gracias
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

RE:Script en shell liunux

Publicado por Krloz (1 intervención) el 27/05/2009 02:39:37
#!/bin/bash
echo "ingrese primer numero:"
read num1
echo "ingrese segundo numero:"
read num2
function suma()
{
suma=$(expr $num1 + $num2)
echo Con magia al sumar $num1 más $num2 la suma es: $suma
}
function resta()
{
resta=$(expr $num1 - $num2)
echo Magia! tu resultado es: $resta
}
function()
{
multiplicacion=$(expr $num1 * $num2)
echo Aki esta la multiplicacion: $multiplicacion
function division()
{
division=$(expr $num1 / $num2)
echo magicamente tu resultado es: $division
}
clear
echo "ingrese opcion"
echo "1) suma"
echo "2) resta"
echo "3) multiplicacion"
echo "4) division"
echo "5) salir"
read opc

case $opc in
1) suma;;
2) resta;;
3) multiplicacion;;
3) division;;
4) exit;;
esac



#Mira yo hice algo parecido, pero para estudio personal. y me encontre con lo tuyo.. mm no se que te parece, pero lo mio es una opción similiar a la tuya, algo mas simple sin el "(S/N)", pero con un menu de opciones. Saludos!
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

RE:Script en shell liunux

Publicado por isabelle (1 intervención) el 02/09/2011 21:42:43
Hola muchas gracias por el script, pero queria comentarle a krloz que algo que no funciona, estoy iniciando en el script shell no tengo muchos conocimientos y estos apuntes son muy importantes.
Estoy haciendo un shella de suma y el promedio pero debo de hacerlo con validaciones, ejemplo si ingresas una letra no es corrrecto si ingresas linea vacia tampoco y todos esos parametros.

Agradezco la ayuda que me puedan brindar aunque se que esto fue escrito en el 2009, pero a lo mejor todavia estan ahi.

Gracias

Isabelle.
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

RE:Script en shell liunux

Publicado por JuanC (1 intervención) el 06/01/2016 16:49:26
Has cometido un error, al final del script pones dos veces el caso "3)" tanto en la multiplicación como en la division.

En todo caso deberia ser:

case $opc in
1) suma;;
2) resta;;
3) multiplicacion;;
4) division;;
5) exit;;
esac
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