Le retour de la valeur de fonction appelée dans un script shell

Je veux retourner de la valeur à partir d'un appel de fonction dans un script shell. Peut-être que je suis absent de la syntaxe. J'ai essayé d'utiliser les variables globales. Mais c'est aussi ne fonctionne pas. Le code est:

lockdir="somedir"
test() {
    retval=""

    if mkdir "$lockdir"
        then    # Directory did not exist, but it was created successfully
            echo >&2 "successfully acquired lock: $lockdir"
            retval="true"
        else
            echo >&2 "cannot acquire lock, giving up on $lockdir"
            retval="false"
    fi
    return retval
}


retval=test()
if [ "$retval" == "true" ]
    then
        echo "directory not created"
    else
        echo "directory already created"
fi
  • Pas liés à votre question, mais de toute façon... si vous essayez d'obtenir un verrouillage vous pouvez utiliser "fichier de verrouillage de la commande".