Я пишу свой первый ожидаемый скрипт для запуска gvfs-mount.Я бы хотел, чтобы ожидаемый текст отвечал на запросы до «Пароль:», чтобы я мог ввести пароль, а затем переключился обратно в неинтерактивный режим для завершения.
Я хочу изменить этот сценарий, сгенерированныйautoexpect и немного обезличено мной:
#!/usr/bin/expect -f
set timeout -1
spawn gvfs-mount {smb://my-userid@10.253.x.y/my-userid$}
match_max 100000
expect -exact "Password required for share my-userid\$ on 10.253.x.y\r\nDomain \[WORKGROUP\]: "
send -- "my-domain\r"
expect -exact "my-domain\r\nPassword: "
send -- "my-password\r"
expect eof
Простое изменение -exact на -i во время второй отправки переводит весь скрипт в состояние, в котором он ожидает ввода домена, но не читает клавиатуруили «отправить».Я предполагаю, что это связано с тем, что gvfs-mount вызывается в фоновом процессе, не привязанном к стандартному стандартному стандарту.
Итак, как мне переключать интерактивность некоторых «ожидаемых»?