Linux/Unix Shell Scripting - Duda con shell script

 
Vista:

Duda con shell script

Publicado por Migue (2 intervenciones) el 31/10/2007 08:36:10
Muy buenos días. Tengo un problema con este script

Tengo que calcular la media de edad de un fichero de población.

#!/bin/sh
#ahora tendre que quedarme con la columna de edad del fichero, que
#en este caso es la 3, que almaceno en otro fichero
cut -d: -f3 poblacion.txt > numeros.txt

for linea in $(cat numeros.txt)
do
suma=`expr $suma+$linea`
numlineas=`expr $numlineas+1`
done

media=`expr $suma/$numlineas`
echo "La edad media de todas las personas es: "
echo $media

lo que obtengo es: +24+36+43+32/+1+1+1+1, cómo puedo tratar las variables para que sean numéricas??

Gracias y un saludo.
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:Duda con shell script

Publicado por Tom (361 intervenciones) el 31/10/2007 09:49:12
Tan simple como separar el operador del nombre de las variables tal y como está escrito en el man de expr.
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:Duda con shell script

Publicado por Migue (2 intervenciones) el 31/10/2007 11:12:02
Muchas gracias Tom.

Voy a probar!!!
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:Duda con shell script

Publicado por Migue (1 intervención) el 31/10/2007 17:31:13
Estimado Tom tras probar a separar los operandos de los operadores esto es lo que tengo:

./script: 9: 24: not found
./script: 9: 1: not found
./script: 9: 36: not found
./script: 9: 1: not found
./script: 9: 43: not found
./script: 9: 1: not found
./script: 9: 32: not found
./script: 9: 1: not found
./script: 10: /: Permission denied
La edad media de todas las personas es:



asi es como queda el script:



#!/bin/sh
#ahora tendre que quedarme con las columnas de edad del fichero,

cut -d: -f3 poblacion.txt > numeros.txt

for linea in $(cat numeros.txt)
do
suma= `expr $suma + $linea`
numlineas= `expr $numlineas + 1`
done
media= `expr $suma / $numlineas`
echo "La edad media de todas las personas es: $media"



Gracias y un saludo.
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:Duda con shell script

Publicado por Tom (361 intervenciones) el 31/10/2007 22:21:43
Bien, el operador de asignación (=) también está descrito en el manual. Esta vez en el de bash.

suma=`expr $suma + $linea`
media=`expr $suma / $numlineas`
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

Duda con shell script

Publicado por Juan (1 intervención) el 30/11/2007 14:05:20
Una fucncion en shell script para:

Como intercambiar los datos de dos ficheros sin borrar ninguno de estos, o sea, sería mantener las dos carpetas e intercambiar lo que hay dentro de ellas.
Saludos y 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:Duda con shell script

Publicado por Luis (1 intervención) el 03/01/2008 13:45:35
Hola a todos/as!!!!
Vereis os queria pedir ayuda.Sabeis como se podria hacer un programa en shell script q resuelva las torres de hanoi???
Un saludo!!!!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