Linux spawn, ожидайте, отправляйте

0

Следующий код не работает, но я хочу ответить «П» всякий раз, когда YUM спрашивает, хочу ли я установить программное обеспечение или нет. Спасибо

#!/usr/bin/expect -f

spawn yum install emacs
expect "Is this ok \[y\/N\]:"
send "n\r"
Chun Tat David Chu
источник
добавлять exp_internal 1 в верхней части сценария и перезапустите. Это даст вам много отладочной информации
glenn jackman

Ответы:

2

Начиная с вашего фрагмента кода, это то, что я должен работать

#!/usr/bin/expect -f

expect -c  "
    set timeout 15
    spawn yum install emacs

    expect {
        "]:"        { send n\r ; sleep 1 ; exp_continue  } 
    }
"

это также работает с #!/bin/bash на вершине

Ilan.K
источник
1

От ням manpage :

-y, --assumeyes
    Assume yes; assume that the answer to any question which would be asked is yes.
    Configuration Option: assumeyes

Так что просто используйте yum -y вместо того, чтобы возиться с expect,

mgorven
источник
0

изменить expect "Is this ok \[y\/N\]:"

в

ожидать "]:"

вы получаете ту же ошибку? если нет, то это опечатка в вашем ожидании.

Darkmage
источник