Eu configurei uma função em um shell script que verifica se existe uma pasta, se não existe, tenta criá-la, e se não conseguir criar a pasta (por exemplo se o usuário não tiver a permissão certa) retornar 1 . Então eu verifico este "retorno", mas não entendo porque "se" não funciona porque o retorno é igual a 1.
Código:
#!/bin/bash
# Main folders
INPUT="input"
OUTPUT="output"
# Functions
function checkFolderExist(){
if [ -d $1 ]
then
# 0 = true
# Change to 0, only for tests.
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 "[+] Error. Folder does not exist. Check user permissions."
exit 1
fi