Ver Mensaje Individual
  #1 (permalink)  
Antiguo 20/08/2012, 09:52
saba01
 
Fecha de Ingreso: agosto-2012
Mensajes: 4
Antigüedad: 11 años, 8 meses
Puntos: 0
comandos que no funcionan en un script y si en la terminal

Hola, hace tiempo que os consulto y hasta ahora había podido solucionar todos los problemas que me he encontrado pero con este llevo ya unas horas y no hay forma por eso he decidido pediros ayuda.

tengo esta secuencia de comandos
Código:
REGISTROS=`grep -n "row" dia0.xml | awk 'NR==2' | cut -f1 -d:`; echo "Total registros" $REGISTROS
básicamente busca las coincidencias "roow" en el archivo dia0.xml y me devuelve solo el número de linea de la segunda coincidencia.

pues esto funciona perfectamente en la terminal pero dentro de un script deja la variable $REGISTROS vacia y me da error el expr.
esta es el código
Código:
REGISTROS=`grep -n "row" $FILE0X | awk 'NR==2' | cut -f1 -d:`
COMPLETO=165
FALTAN=`expr $COMPLETO - $REGISTROS`; echo "Total nulls "$FALTAN
como podeis ver son identicas solo que en el caso del script la variable $FILE0X contiene toda la ruta del fichero dia0.xml

a ver si alguien me puede desatascar.......

Saludos

edito:

he separado esta parte de script que no funciona a un script de pruebas y funciona perfectamente
el código es este
Código:
# Defino el fichero donde estan los datos
FILE0X=/var/www/temperatura/data/dia0.xml
# Elimino el fichero temporar de pruebas
rm /tmp/null.txt
# Obtengo el numero de linea de la segunda coincidencia con "row"
REGISTROS=`grep -n "row" $FILE0X | awk 'NR==2' | cut -f1 -d:`
# Calculo las lineas que faltan para llegar a 165
FALTAN=`expr 165 - $REGISTROS`; echo "Total nulls "$FALTAN
# Creo las lineas que faltan  en un fichero temporal
for i in `seq 1 $FALTAN`
do
   echo "<null/>" >> /tmp/null.txt
done
# compruebo el nº de lineas en el fichero temporal.
cat /tmp/null.txt | wc -l
la única variable reutilizada en $FILE0X, el resto son nuevas
cada vez lo entiendo menos......

Última edición por saba01; 20/08/2012 a las 11:28 Razón: nuevas pruebas