Hier sind zwei Dinge los:
Tcl verwendet
[...]
als "Befehlssubstitution" -Syntax (Siehe https://tcl.tk/man/tcl8.6/TclCmd/Tcl.htm Regel 7). Es ist wie Backticks in einem Shell-Skript. In Anführungszeichen werden Befehlssubstitutionen ausgeführt.Das Standardmuster für den
expect
Befehl ist "Glob" -Muster . Glob Patterns sind hier dokumentiert: https://tcl.tk/man/tcl8.6/TclCmd/string.htm#M35 Eckige Klammern sind speziell für Glob Patterns.
Daher müssen Sie zuerst die eckigen Klammern in Anführungszeichen schützen, um das Ersetzen von Befehlen zu verhindern. Wenn Sie sie dann als buchstäbliche Zeichen behandeln möchten, müssen Sie sie erneut entweichen.
Hier sind ein paar Dinge, die Sie tun können, um die Backslashes zu reduzieren:
Verwenden Sie nicht interpolierende Anführungszeichen: in Tcl
nicht
"quotes"
.Wählen Sie einen anderen Mustertyp: Wenn es sich um eine Literalzeichenfolge handelt, die Sie abgleichen möchten, verwenden Sie die
-ex
Option, um anzugeben, dass Sie eine "exakte" Übereinstimmung haben möchten.
Also willst du das:
expect -ex