Возвращение значения из вызываемой функции в сценарии оболочки

Я хочу вернуть значение из функции, вызываемой в сценарии оболочки. Возможно, мне не хватает синтаксиса. Я пробовал использовать глобальные переменные. Но это тоже не работает. Код:

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
114
задан codeforester 8 August 2018 в 21:03
поделиться