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.
Trending News
¿Por qué no hace la validación el if de mi script en bash?
Tengo que hacer un script que valide si un archivo esta vacio o no, pero el if que tengo no valida; le pase el archivo k le pase, no entra al else:
export CINTA=$(find "$(pwd)" -type f -name datAMA*.bin)
if [ ! -s CINTA ]; then
echo -e "\e[00;31mEl cuerpo $CINTA de la cinta esta vacio, la cinta no debe enviarse\e[00m"
else
echo "La cinta tiene datos"
fi
si le quito la negacion al if, ya sólo ejecuta el else...
2 Answers
- 6 years agoFavorite Answer
Lo que pasa es que en tu condición necesitas indicar que es una variable con $ y ademas tienes que rodearla con comillas ("$CINTA"). Otra cosa, no necesitas el export, eso es solo para variables de entorno.
Intenta con esto:
CINTA=$(find "$(pwd)" -type f -name datAMA*.bin)
if [ ! -s "$CINTA" ]; then
. . .
Código completo: http://pastebin.com/VSPpXLcD
#!/bin/bash
CINTA=$(find "$(pwd)" -type f -name datAMA*.bin)
if [ ! -s "$CINTA" ]; then
echo -e "\e[00;31mEl cuerpo $CINTA de la cinta esta vacío, la cinta no debe enviarse\e[00m"
else
echo "La cinta tiene datos"
fi
Salida:
Imagen con mejor calidad: http://i.imgur.com/Upjlyxy.png
- 6 years ago
Gracias por tu apoyo, yo asigno la mejor respuesta al menos dos días después de hacer la pregunta, pero no olvido a quien me ayuda.
Probé lo que dices, pero sigue sin reconocer los archivos: Le paso
-rw-r--r-- 1 ijanez cdrama 160 Apr 29 09:28 datAMA570.bin
-rw-r--r-- 1 ijanez cdrama 160 Apr 29 09:28 colaAMA570
-rw-r--r-- 1 ijanez cdrama 0 Apr 29 09:42 hdrAMA407 #En CEROS
Y me devuelve
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 decir que el cuerpo y la cola tienen datos y la cabecera está vacía.
Agradezco mucho el apoyo... ¿No estará mal mi lógica?
PD intenté ver el código que ma hiciste favor de dejar, pero tengo bloqueada esa página en el trabajo u.u