encontro "operador unário esperado" no script bash

no meu script bash, eu tenho uma função para retornar 0 ou 1 (verdadeiro ou falso) para a condição da função principal posterior.

function1 () { 
    if [[ "${1}" =~ "^ ...some regexp... $" ]] ; then
        return 1
    else
        return 0
    fi 
}

então na minha função principal:

main () { 
    for arg in ${@} ; do
        if [ function1 ${arg} ] ; then
            ...
        elif [ ... ] ; then
            ...
        fi
    done
}

no entanto, quando eu corri este script sempre me dava uma mensagem de erro "[: function1: operador unário esperado"

Alguém pode me ajudar por favor?

questionAnswers(1)

yourAnswerToTheQuestion