Duda sobre return 1 y como lo interpreta el IF
Publicado por jask (3 intervenciones) el 03/04/2019 13:08:52
Muy buenas,
Estoy haciendo un pequeño script que comprueba si existe o no una carpeta y me estoy encontrando con un problema que no entiendo.
Tengo una función que comprueba si existe una carpeta (return 0), si no la crea (return 0), y si por temas de permisos no se puede devuelve error (return 1)
Invoco a la función y luego compruebo con un IF si el resultado devuelto es un 1 o un 0. Si es un 1 pinto un mensaje de error y salgo del script.
Mi problema viene en este último punto, cuando hago la comprobación, parece que le llega los valores 1 pero en el IF no entra.. por lo que me estoy volviendo loco, ¿alguna idea?
Adjunto script:
Muchas gracias!
Estoy haciendo un pequeño script que comprueba si existe o no una carpeta y me estoy encontrando con un problema que no entiendo.
Tengo una función que comprueba si existe una carpeta (return 0), si no la crea (return 0), y si por temas de permisos no se puede devuelve error (return 1)
Invoco a la función y luego compruebo con un IF si el resultado devuelto es un 1 o un 0. Si es un 1 pinto un mensaje de error y salgo del script.
Mi problema viene en este último punto, cuando hago la comprobación, parece que le llega los valores 1 pero en el IF no entra.. por lo que me estoy volviendo loco, ¿alguna idea?
Adjunto script:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
#!/bin/bash
# Main folders
INPUT="input"
OUTPUT="output"
# Functions
function checkFolderExist(){
if [ -d $1 ]
then
# 0 = true
# Cambiar a 0, de pone en 1 a modo de prueba únicamente.
return 1
else
mkdir $1
result=$?
if [ result==0 ]
then
# 0 = true
return 0
else
# 1 = false
return 1
fi
fi
}
CHECKINPUT=$(checkFolderExist $INPUT)
echo $?
CHECKOUTPUT=$(checkFolderExist $OUTPUT)
echo $?
# If folders does not exist, exit the script
if [[ "$CHECKINPUT" = 1 || "$CHECKOUTPUT" = 1 ]]; then
echo "[+] Las carpetas NO existen y tampoco se pueden crear. Por favor, revisa los permisos del directorio."
exit 1
fi
Muchas gracias!
Valora esta pregunta
0