¿Qué hace el operador “= ~” en los scripts de shell?

Parece que es una especie de operador de comparación, pero qué hace exactamente en, por ejemplo, el siguiente código (tomado dehttps://github.com/lvv/git-prompt/blob/master/git-prompt.sh#L154)?

    if [[ $LC_CTYPE =~ "UTF" && $TERM != "linux" ]];  then
            elipses_marker="…"
    else
            elipses_marker="..."
    fi

Actualmente estoy tratando de hacergit-prompt para trabajar con MinGW, y el shell suministrado con MinGW no parece ser compatible con este operador:

conditional binary operator expected
syntax error near `=~'
`        if [[ $LC_CTYPE =~ "UTF" && $TERM != "linux" ]];  then'

En este caso específico solo puedo reemplazar el bloque completo conelipses_marker="…" (como sé que mi terminal es compatible con Unicode), pero qué es exactamente esto=~ ¿hace?

Respuestas a la pregunta(4)

Su respuesta a la pregunta