Wie vergleiche ich einen Pfad mit einem regulären Ausdruck? (richtige Art zu zitieren?)

Wie vergleiche ich einen Pfad mit einem regulären Ausdruck? (richtige Art zu zitieren?)

Ich versuche, den regulären Ausdruck zu finden, der einem Pfad des Formats ./foo/baz/bar/filename.cin einem [[ $string =~ $regex ]]Kontext entspricht.

Ich würde erwarten, dass das regex=$'(^\./).*$'übereinstimmt, aber es bleibt leer. Ich habe vergeblich ${BASH_REMATCH[1]}versucht, die Klammern zu umgehen oder das wegzulassen ..*

Ich habe herausgefunden, wie der Zugriff auf verschachtelte Erfassungsgruppen über BASH_REMATCHandere $stringInhalte gut funktioniert (ein zusätzlicher Index für die Verschachtelungsebene und die Erfassungsgruppe rechts), aber hiermit kann ich es nicht anpassen.

Was ist mein Versagen?

Antwort1

Funktioniert auch mit der $stringVariable in oder in einfachen Anführungszeichen ohne vorangestelltes Dollarzeichen.[[ $string =~ $pattern ]]$'...''...'

verwandte Informationen