ожидаем, что приглашение снова передаст другую команду
spawn bash sleep 1 expect "$" send -- "whoami\r" expect '$' send -- "hostname\r"
Этот скрипт выполняет только первую команду
Одна очевидная проблема заключается в том, что во второй команде expect вы используете одинарные кавычки ', но они не имеют смысла в синтаксисе Tcl, поэтому ожидаемая строка становится одинарной кавычкой-долларом-одинарной кавычкой, что, конечно, не соответствует вашей подсказке bash. См. https://www.tcl.tk/man/tcl/TclCmd/Tcl.htm#M8 о формах цитирования, которые принимает Tcl.
expect
'