Bu, Ubuntu Online, Fedora Online, Windows çevrimiçi öykünücüsü veya MAC OS çevrimiçi öykünücüsü gibi birden fazla ücretsiz çevrimiçi iş istasyonumuzdan birini kullanarak OnWorks ücretsiz barındırma sağlayıcısında çalıştırılabilen otomatik bekleme komutudur.
Program:
ADI
autoexpect - bir oturumu izleyerek bir Beklenti betiği oluşturun
SİNOPSİS
otomatik bekleme [ args ] [ program argümanlar... ]
TANITIM
autoexpect, başka bir programla etkileşimde bulunmanızı izler ve bir Beklenti komut dosyası oluşturur.
etkileşimlerinizi yeniden üretir. Düz çizgi komut dosyaları için, otomatik bekleme önemli ölçüde zaman kazandırır
senaryoları elle yazmak üzerine. Bir Beklenti uzmanı olsanız bile, onu bulacaksınız
etkileşimlerin daha akılsız kısımlarını otomatikleştirmek için autoexpect kullanmak uygun. Bu
yığınlarca autoexpect komut dosyasını birlikte kesmek/yapıştırmak, bunları yazmaktan çok daha kolay
kaşımak. Ve yeni başlayan biriyseniz, hiçbir şey öğrenmeden de kurtulabilirsiniz.
Otomatik beklemenin nasıl çağrılacağından daha çok Beklenti hakkında.
Autoexpect'i kullanmanın en basit yolu, onu herhangi bir argüman olmadan komut satırından çağırmaktır.
Örneğin:
% otomatik beklenti
Varsayılan olarak, autoexpect sizin için bir kabuk oluşturur. Bir program adı ve argümanlar verildiğinde,
autoexpect bu programı ortaya çıkarır. Örneğin:
% autoexpect ftp ftp.cme.nist.gov
Oluşturulan programınız çalıştığında, normal şekilde etkileşim kurun. Kabuktan çıktığınızda
(veya belirttiğiniz program), autoexpect sizin için yeni bir komut dosyası oluşturacaktır. Varsayılan olarak,
autoexpect, yeni komut dosyasını "script.exp" dosyasına yazar. Bunu -f bayrağıyla geçersiz kılabilirsiniz.
ardından yeni bir komut dosyası adı gelir.
Aşağıdaki örnek, "ftp ftp.cme.nist.gov" dosyasını çalıştırır ve ortaya çıkan Beklenti komut dosyasını depolar.
"nist" dosyasında.
% autoexpect -f nist ftp ftp.cme.nist.gov
autoexpect'in çalışan bir betiği garanti etmediğini anlamak önemlidir, çünkü
mutlaka belirli şeyler hakkında tahminde bulunmak zorundadır - ve bazen yanlış tahminde bulunur.
Ancak, bu sorunları belirlemek ve düzeltmek genellikle çok kolaydır. Tipik problemler
şunlardır:
· Zamanlama. Şaşırtıcı derecede çok sayıda program (rn, ksh, zsh, telnet, vb.)
ve cihazlar (örn. modemler) "çok hızlı" gelen tuş vuruşlarını yok sayar.
ister. Yeni komut dosyanızın bir noktada asılı kaldığını görürseniz, bir
önceki göndermeden hemen önce kısa uyku.
Değişkeni geçersiz kılarak bu davranışı baştan sona zorlayabilirsiniz.
Oluşturulan betiğin başlangıcına yakın "force_conservative". Bu
"muhafazakar" mod, otomatik beklemenin otomatik olarak kısa bir süre duraklatılmasını sağlar (onda biri
bir saniye) her karakteri göndermeden önce. Bu bildiğim her programı pasifleştirir
Otel.
Bu muhafazakar mod, sadece kendinizi çabucak rahatlatmak istiyorsanız kullanışlıdır.
sorunun bir zamanlama olduğunu (veya ne kadar hızlı olduğunu gerçekten umursamıyorsanız)
komut dosyası çalışır). Bu aynı mod, komut dosyası oluşturmadan önce
-c bayrağını kullanarak.
Neyse ki, bu zamanlama noktaları nadirdir. Örneğin, telnet yok sayar
karakterler yalnızca kaçış sırasını girdikten sonra. Modemler yalnızca yok sayar
karakterlere ilk kez bağlandıktan hemen sonra. Bir kaç
programlar bu davranışı her zaman gösterir, ancak genellikle
devre dışı bırak. Örneğin, rn'nin -T bayrağı bu davranışı devre dışı bırakır.
Aşağıdaki örnek, muhafazakar modda otomatik beklemeyi başlatır.
otomatik bekleme -c
-C bayrağı, muhafazakar modu değiştirmek için bir anahtar tanımlar. Aşağıdaki örnek
geçiş olarak ^L ile otomatik beklemeyi (koruyucu olmayan modda) başlatır. (Bunu not et
^L harfi harfine girilir - yani, gerçek bir kontrol-L girin).
otomatik bekleme -C ^L
Aşağıdaki örnek, muhafazakar modda otomatik beklemeyi ^L olarak başlatır.
geçiş.
otomatik bekleme -c -C ^L
· Yankı. Birçok program eko karakteri. Örneğin, "daha fazla" yazarsanız
kabuk, autoexpect'in gerçekte gördüğü şey:
'm' yazdın,
bilgisayar 'm' yazdı,
'o' yazdın,
'o' yazan bilgisayar,
'r' yazdın,
'r' yazan bilgisayar,
...
Program hakkında özel bilgi sahibi olmadan, programa uygun olup olmadığınızı bilmek imkansızdır.
Bir sonrakini yazmadan önce her karakterin yankılandığını görmeyi beklemek. eğer otomatik bekle
karakterlerin yankılandığını görür, hepsini bir grup olarak gönderebileceğini varsayar
onları ilk göründükleri gibi bir araya getirmek yerine. Bu
senaryo okumak daha keyifli. Ancak, eğer makul bir şekilde yanlış olabilir
gerçekten her karakterin yankılandığını görmek için beklemek zorundaydınız.
· Değiştirmek. Autoexpect, komut dosyasındaki etkileşimdeki her karakteri kaydeder.
Bu arzu edilir çünkü size hakkında yargıda bulunma yeteneği verir.
neyin önemli olduğu ve neyin bir model eşleşmesi ile değiştirilebileceği.
Öte yandan, çıktısı çalıştırmadan çalıştırmaya farklılık gösteren komutlar kullanırsanız,
oluşturulan komut dosyaları doğru olmayacak. Örneğin, "tarih"
komutu her zaman farklı çıktı üretir. Yani tarih komutunu kullanırken
autoexpect'i çalıştırmak, düzenleme gerektiren bir komut dosyası oluşturmanın kesin bir yoludur
çalışması için.
-p bayrağı, otomatik beklemeyi "istem kipine" geçirir. Bu modda, otomatik bekleme
yalnızca program çıktısının son satırını arayın - bu genellikle
çabuk. Bu, tarih sorununu (yukarıya bakın) ve diğerlerinin çoğunu ele alır.
Aşağıdaki örnek, bilgi istemi modunda otomatik beklemeyi başlatır.
otomatik bekleme -p
-P bayrağı, bilgi istemi modunu değiştirmek için bir anahtar tanımlar. Aşağıdaki örnek başlar
geçiş olarak ^P ile autoexpect (istemsiz modda). ^P olduğuna dikkat edin
kelimenin tam anlamıyla girildi - yani, gerçek bir kontrol-P girin.
otomatik bekleme -P ^P
Aşağıdaki örnek, geçiş olarak ^P ile bilgi istemi modunda otomatik beklemeyi başlatır.
otomatik bekleme -p -P ^P
DİĞER BAYRAKLAR
The -sessiz flag autoexpect tarafından üretilen bilgi mesajlarını devre dışı bırakır.
The -Q flag, otomatik olarak beklenen karakterleri girmek için kullanılabilecek bir alıntı karakterini adlandırır
Aksi takdirde, geçiş olarak kullanıldıkları için tüketirler.
Aşağıdaki örnek, bir giriş yolu sağlamak için kullanılan tırnak işareti içeren bir dizi bayrağı göstermektedir.
kelimenin tam anlamıyla geçiş yapar.
otomatik beklenti -P ^P -C ^L -Q ^Q
STİL
Beklenti programları için bir "stil" olup olmadığını bilmiyorum ama otomatik bekleme kesinlikle
herhangi bir stil modeli olarak ele alınmamalıdır. Örneğin, otomatik bekleme, Bekleme özelliklerini kullanır.
özellikle bilgisayar tarafından oluşturulan komut dosyası için tasarlanmıştır. bu yüzden denemeyin
autoexpect tarafından oluşturulmuş gibi görünen komut dosyalarını sadakatle yazın. Bu değil
işe yarar.
Öte yandan, otomatik bekleme komut dosyaları bazı değerli şeyler gösterir. örneğin, sen
bir Tcl betiğinde kullanmak için herhangi bir dizgenin nasıl alıntılanması gerektiğini basitçe çalıştırarak görebilir
otomatik bekleme yoluyla dizeler.
onworks.net hizmetlerini kullanarak otomatik beklemeyi çevrimiçi kullanın