Foro de elhacker.net

Programación => Scripting => Mensaje iniciado por: IraisGossow en 28 Abril 2015, 18:41 pm



Título: Script Corre con otro usuario y con el mío no. ¿Serán las variables de entorno?
Publicado por: IraisGossow en 28 Abril 2015, 18:41 pm
Estoy haciendo un script que debe validar que tres archivos no estén vacíos (es decir, en ceros), pero no logro que me tome bien los archivos. El problema es que son variables, utilizan un nombre, el prefijo AMA y un número que varía.

Corregí las lineas de la asignación de variables y en la linea donde debería validar, sin importar el tamaño de archivo que le pase, no hace la validación.

Si le pongo estos archivos:

-rw-r--r-- 1 ij cdrama    160 Apr 29 09:28 datAMA570.bin
-rw-r--r-- 1 ij cdrama    160 Apr 29 09:28 colaAMA570
-rw-r--r-- 1 ij cdrama      0 Apr 29 09:42 hdrAMA407

Me devuelve esto:

El cuerpo  de la cinta esta vacio, la cinta no debe enviarse
La cola de La cinta tiene datos
La cabecera de La cinta tiene datos


Cuando debería devolver que el cuerpo y la cola tienen datos y la cabecera no.


Agradeceré mucho la ayuda
Código
  1. #!/bin/bash
  2. #
  3. #    valida_cinta.sh
  4. #
  5. #
  6. #    Shell para validar que cualquiera de los tres fragmentos de cinta contengan datos.
  7. #    Version : 1.0
  8. #    Author  : Area de Bases de datos
  9. #
  10. #    04/05/2015
  11. valida_cinta()
  12. {
  13.         CINTA=$(find "$(pwd)" -type f -name datAMA*.bin)
  14.         COLA=$(find "$(pwd)" -type f -name colaAMA*)
  15.         HEADER=$(find "$(pwd)" -type f -name hdrAMA*)
  16.  
  17.         if [ -s "$CINTA" ]; then
  18.         echo  -e "\e[00;32mEl cuerpo de La cinta tiene datos\e[00m"
  19.         else
  20.         echo -e "\e[01;31mEl cuerpo de la cinta esta vacio, la cinta no debe enviarse\e[00m"
  21.         fi
  22.  
  23.         if [ -s "$COLA" ]; then
  24.         echo  -e "\e[00;32mLa cola de La cinta tiene datos\e[00m"
  25.         else
  26.         echo -e "\e[01;31mLa cola de la cinta esta vacia, la cinta no debe enviarse\e[00m"
  27.         fi
  28.  
  29.         if [ -s "$HEADER" ]; then
  30.         echo  -e "\e[00;32mLa cabecera de La cinta tiene datos\e[00m"
  31.         else
  32.         echo -e "\e[01;31mLa cabecera de la cinta esta vacia, la cinta no debe enviarse\e[00m"
  33.         fi
  34. }
  35. valida_cinta
  36.  
  37.  
  38.  

Otra persona lo corrió en el mismo ambiente pero con otro usuario y le funcionó bien,
¿Serán las variables de entorno?


Título: Re: Error al reconocer el archivo (Bash script)
Publicado por: Eleкtro en 28 Abril 2015, 19:43 pm
Bienvenido al foro.

Lee las reglas antes de formular una pregunta, para empezar, debes utilizar las etiquetas GeShi al publicar código.

Saludos


Título: Re: ¿Por qué no hace la validación el if en mi script en bash?
Publicado por: IraisGossow en 30 Abril 2015, 17:49 pm
Pregunta re-planteada