Одиночные кавычки не имеют особого значения в ожидании. Ожидается, что это расширение Tcl, где фигурные скобки - это не интерполирующий механизм цитирования .
Вы получаете ошибку «недопустимое имя команды», поскольку квадратные скобки являются синтаксисом подстановки команд Tcl.
Вы хотите
expect {[sudo] password for user: }
Вместо sleep
с idiomati c ожидайте, что вы должны expect
некоторый шаблон: приглашение вашей удаленной оболочки, приглашение mysql и т. Д. c.
@ pynexj имеет хорошее замечание. Попробуйте
expect -exact {[sudo] password for user:}