Aşağıdaki bekliyoruz komut dosyası var:
#!/usr/bin/expect
set timeout 20
set cmd "/path/vpntool --server 1.2.3.4:443 --vpnuser user"
set password [lindex $argv 0]
eval spawn $cmd
expect "VPN:"
send "$password\r";
interact
expect ".*\(Y\/N\)"
send "Y\r";
interact
Komut dosyaları "Bu sunucuya bağlanmak ister misiniz? (E / H)" sorusunda durur cevabını bekler.
Sorunun ne olabileceğini bilen var mı?
Hata: “Bu sunucuya bağlanmak ister misiniz? (E / H) ”komut dosyasında bulunamadı. Bunun harici bir komuttan geldiğini varsayıyorum. Bu nedenle bize biraz daha bilgi vermeniz gerekecek.
—
ctrl-alt-delor
Soru Forticlient SSL VPN istemcisinin / path / vpntool binary'den geliyor. İkinci soru sadece ilk değer (şifre) kabul edildikten sonra standart çıktı. Ve genellikle 1 saniyeden küçük bir gecikmeyle birlikte gelir. Ayrıca regex yerine "Bu sunucuya bağlanmak ister misiniz? (E / H)" ile denedim ve hala çalışmıyor ...
—
Spike.WD
Unutma ki kaçtın
—
ctrl-alt-delor
/
. Sebep bu mu? VEYA belki göndermeniz gerekir Y\n
.
Parola kabul edildikten sonra süresi dolmuş bir sertifika bilgisi stdout'a atılır ve son satır "Bu sunucuya bağlanmak ister misiniz? lines ...
—
Spike.WD
İkinci emrinizden
—
Bu benim
interact
önce gelmenizin bir nedeni var mı expect
? Bu etkileşimin bir geri dönüş koşulu yoktur, bu yüzden expect ".*\(Y\/N\)"
asla erişilmez ... Ayrıca: /
karakter normal ifadeler için özel değildir ve kaçmak zorunda değildir .*
ve beklenen desenin başında gereksizdir.