Linux/Unix Shell Scripting - problemas con export

 
Vista:

problemas con export

Publicado por Vidal (13 intervenciones) el 11/04/2007 01:31:48
Salidos Foro!!!

Tengo la situacion con un ciclo while en donde quiero recuperar una variable que dentro del ciclo modifique. aqui tengo una pequeña reseña.

Lo que hago es sacar la cantidad de archivos creados en cada minuto ordenados por tiempo

con un while de la salida de un ls recorro cada uno de los archivos en done guardo un anterior (wordant) para irlos sumando cuando son iguales (word = wordant) y cuando son diferentes imprimir el contador de los archivos anteriores (cnt), el problema es que cuando quiero imprimir el ultimo sale del ciclo y ya no alcanza, el TOT es para derfinir el numero de archivos que quiero contar pero no entra por aqui ya que especifico un numero mayor a la cantidad de archivos en el directorio que quiero comprobar.

Si no es entendible el codigo preguntenme en que queda duda, por otro lado agradezco de antemano y quedo de ustedes para cualquier aclaracion o informacion

Saludos

en tmp guardo la hora de creacion del archivo, notaran que no paso por el primer registro ya que es la salida del total en un ls

ls -t -l $filtro | while read i
do

if [ $contador -ne 0 ]; then
tmp=`echo $i | cut -d" " -f8- | cut -c 1-5`
word=$tmp
# echo $word
if [ $contador -eq 1 ]; then
wordant=$word
fi

if [ "$word" = "$wordant" ]; then
cnt=`expr $cnt "+" 1`
else
echo "Total de archivos a las: => $wordant => $cnt => $word "
cnt=1 export cnt
wordant=$word export wordant
# export word
fi
fi

if [ $contador -eq $TOT ]; then
echo "Total de archivos a las: => $tmp => $cnt "
echo ""
break
fi
contador=`expr $contador "+" 1`
done

if [ $contador -lt $TOT ]; then
echo "Total de archivos a las: => $wordant => $cnt "
echo ""
fi
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:problemas con export

Publicado por Tom (12 intervenciones) el 11/04/2007 10:49:26
Esta cuestión de las variables en ciclos while ya la he aclarado yo mismo en este mismo foro.

De todos modos, define mejor tu problema.
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:problemas con export

Publicado por Vidal (13 intervenciones) el 11/04/2007 16:48:26
Supongamos, tengo estos archivos

-rw-rw-r-- 1 vgarza vgarza 0 Apr 10 10:52 file6
-rw-rw-r-- 1 vgarza vgarza 0 Apr 10 10:47 file2
-rw-rw-r-- 1 vgarza vgarza 0 Apr 10 10:47 file3
-rw-rw-r-- 1 vgarza vgarza 0 Apr 10 10:47 file4
-rw-rw-r-- 1 vgarza vgarza 0 Apr 10 10:47 file5
-rw-rw-r-- 1 vgarza vgarza 0 Apr 10 10:42 file1

El ciclo While empieza a leer los archivos segun el listado de arriba, empieza con la primera linea y al detectar que la segunda es diferente imprime el total de archivos de las 10:52, y empieza a recorrer los de las 10:47, al llegar a las 10:42, detecta que son 4 archivos de las 10:47 e imprime el total de los cuatro PERO como ya llego a la ultima linea del while, se sale de ciclo, y lo que quiero imprimir es la variable donde se almaceno el ultimo archivo leido (10:42) y la cantidad que en este caso es 1.

lo que quiero sacar es

Total de archivos a las: => 10:52 => 1
Total de archivos a las: => 10:47 => 4
Total de archivos a las: => => (Esta linea la imprimo fuera del ciclo while pero como se ve pierde el valor al sacarla del while)

Lamento mucho si no me explique pero si hay alguna duda sobre esto me gustaria saber en que parte para intentar explicarla mejor.

Gracias de antemano 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:problemas con export

Publicado por Tom (12 intervenciones) el 11/04/2007 17:36:50
Entonces, ¿lo que quieres decir es que la variable TOT, o la variable contador, o la variable wordant o cnt, o todas ellas ... no tienen el valor que esperas cuando las usas fuera del bucle ?

Si te repasas otras preguntas en este foro, leerás que las variables las puedes exportar de una sesión a una subsesión, pero no al revés (o sea de "arriba a abajo", pero no de "abajo a arriba").
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