Mirmik » 22 сен 2013, 12:32
Следующий expect скрипт автоматизирует работу по компиляции и заливке нашего хелловорлда на удаленную машину...
#!/usr/bin/expect -f
#prog compilation
spawn virt-gcc hello.c -o hello
# connect via scp
spawn scp hello "root@192.168.1.128:/root/"
#######################
expect {
-re ".*es.*o.*" {
exp_send "yes\r"
exp_continue
}
-re ".*sword.*" {
exp_send "PASSWORD\r"
}
}
interact
Честно говоря, я сам не особо понимаю, как оно работает...
... Если вкратце, вызов spawn выполняет команду, а
вызов expect позволяет висеть на линии. Если приходит запрос от удаленной машины, expect сравнивает запрос с шаблонами и если находит соответствие выполняет прописанные действия... но...
-re ".*sword.*" {
Что сие означает и почему оно работает... Для меня тайна.
З.Ы. Установка expect:
apt-get install expect
... и перерастворяясь из одной формы реальности в другую. И вот он я, рядом с вами падаю в эту же нору, тот кто волшебной палочкой вра...