Я пишу скрипт bash, который автоматизирует подписание пакетов RPM в репозитории YUM. Для выполнения этой задачи я использую expect
.bash: использование ожидается для автоматизации подписи GPG
Вот мой исходный код до сих пор:
/usr/bin/expect <<EOD
spawn bash -c "rpm --resign ${NEW_REPO}/packages/*.rpm"
expect "Enter pass phrase:"
send "${GPG_PASS}\r"
expect eof
EOD
NEW_REPO
путь к репо YUM и GPG_PASS
пароль для ключа GPG.
По большей части это работает достаточно хорошо и успешно заключает пакеты.
Проблема: Этот код блокирует только знаки между пакетами 28-30 RPM, хотя каталог содержит 42 пакета. Ручное подписание пакета RPM-пакетов из командной строки отлично работает, но блок expect
в моем скрипте просто останавливается, прежде чем он достигнет всех пакетов. Это какая-то странная причуда expect
, или я делаю что-то совершенно не так? Обходные решения/предложения приветствуются.
Thanks
Вы имеете в виду первую строку блока 'expect' или в моем сценарии bash перед блоком' expect'? – scottyseus
Я впечатлен значением тайм-аута по умолчанию, равным 10 секундам, позволяя ему получить, насколько это реально, но это, безусловно, решение. –
Первая строка вашего блока ожидания. –