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

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

#!/usr/bin/expect -f

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

3 ответа

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

#!/usr/bin/expect -f

expect -c  "
    set timeout 15
    spawn yum install emacs

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

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

С ням справочной страницы :

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

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

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

в

ожидать "]:"

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

Другие вопросы по тегам