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


0

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

#!/usr/bin/expect -f

spawn yum install emacs
expect "Is this ok \[y\/N\]:"
send "n\r"

добавлять 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 на вершине


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,


0

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

в

ожидать "]:"

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

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.