Yahoo Answers is shutting down on May 4th, 2021 (Eastern Time) and beginning April 20th, 2021 (Eastern Time) the Yahoo Answers website will be in read-only mode. There will be no changes to other Yahoo properties or services, or your Yahoo account. You can find more information about the Yahoo Answers shutdown and how to download your data on this help page.

¿Script Corre con otro usuario y con el mío no. ¿Serán las variables de entorno?

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.

Otra persona lo corrió en el mismo ambiente pero con otro usuario y le funcionó bien,

¿Serán las variables de entorno?

#!/bin/bash

# Shell para validar que cualquiera de los tres fragmentos de cinta contengan datos.

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

2 Answers

Rating
  • 6 years ago
    Favorite Answer

    Nuevamente yo.

    No hay ninguna variable de entorno que intervenga en la ejecución del script. Es bastante raro, podrías mandarme una captura de pantalla haciendo un ls -halF del directorio donde se ejecuta tu script junto con la ejecución del mismo, algo como esto:

    Actualización:

    no veo ninguno de los archivos datAMA, colaAMA, hdrAMA en tu imagen. Tampoco veo la salida de la ejecución del script, y no me das el nombre del script, más bien parece un ls de tu home. Otra cosa recuerda que cuando usamos: CINTA=$(find "$(pwd)" -type f -name datAMA*.bin)

    con "$(pwd)" nos estamos refiriendo al directorio actual, o sea que tanto tus archivos que quieres analizar como tu script se deben encontrar en el mismo directorio, para que el script analice los archivos que se encuentran en otro directorio tendrías que cambiar a algo así:

    CINTA=$(find /directorio/de/los/archivos -type f -name datAMA*.bin)

    COLA=$(find /directorio/de/los/archivos -type f -name colaAMA*)

    HEADER=$(find /directorio/de/los/archivos -type f -name hdrAMA*)

    Y nuevamente te pido que me des la salida de la ejecución del script así como un ls -halF del directorio donde está el script

    imagen con mayor calidad: http://i.imgur.com/Abl4KNF.png

    Attachment image
  • 6 years ago

    Espero que ahí puedas ver la imagen, porque tengo muchos sitios web bloqueados... si no la ves, ¿me podrías decir qué estás buscando?

    Falta de algún archivo? permisos?

    Attachment image
Still have questions? Get your answers by asking now.