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
#!/bin/bash
#
# valida_cinta.sh
#
#
# Shell para validar que cualquiera de los tres fragmentos de cinta contengan datos.
# Version : 1.0
# Author : Area de Bases de datos
#
# 04/05/2015
valida_cinta()
{
CINTA=$(find "$(pwd)" -type f -name datAMA*.bin)
COLA=$(find "$(pwd)" -type f -name colaAMA*)
HEADER=$(find "$(pwd)" -type f -name hdrAMA*)
if [ -s "$CINTA" ]; then
echo -e "\e[00;32mEl cuerpo de La cinta tiene datos\e[00m"
else
echo -e "\e[01;31mEl cuerpo de la cinta esta vacio, la cinta no debe enviarse\e[00m"
fi
if [ -s "$COLA" ]; then
echo -e "\e[00;32mLa cola de La cinta tiene datos\e[00m"
else
echo -e "\e[01;31mLa cola de la cinta esta vacia, la cinta no debe enviarse\e[00m"
fi
if [ -s "$HEADER" ]; then
echo -e "\e[00;32mLa cabecera de La cinta tiene datos\e[00m"
else
echo -e "\e[01;31mLa cabecera de la cinta esta vacia, la cinta no debe enviarse\e[00m"
fi
}
valida_cinta
Otra persona lo corrió en el mismo ambiente pero con otro usuario y le funcionó bien,
¿Serán las variables de entorno?