linux中find命令详解,linux下find命令用法

  linux中find命令详解,linux下find命令用法

  expect(Home http://expect.nist.gov/)是一个用来提供自动交互的工具。例如,当您想使用ssh或telnet登录到服务器时,您需要在命令行提示符下输入用户名和密码。你用shell脚本写自动登录脚本是不是有点难?你可以说,如果你在shell中执行ssh命令,他会一直停在那里,等待你的密码。你必须手动完成吗?

  Expect是一个用来处理这种情况的工具。简单来说就是可以对输入输出流进行控制和处理,然后提供自动数据填充等用户需要交互输入的地方,实现自动处理。Expect是一个处理“自动交互”的工具。

  Expect支持自定义脚本,所以你可以通过编写自定义脚本来自动填充你想要的数据。

  1.期待tcl

  Expect用的是一种叫做TCL(工具命令语言)的脚本语言,所以你至少要学会Tcl的语法。

  材料TCL网站TCL/TK8.5手册:TCL教程,http://tmml.sourceforge.net/doc/tcl/index.html, http://www.tcl.tk/man/tcl8.5/: http://www.tcl.tk/man/tcl8.5/教程/tcltutorial.html TCL语法帮助:http://wiki.tcl.tk/1019学习TCL:http://wiki.tcl.tk/20789以上网站均属于TCL ERW iki http://wiki.tcl.tk/.分公司

  TCL也有一本《Practical Programming in Tcl and Tk》。

  亚马逊链接:Tcl/Tk初级经典(第二版)expect现在也有perl和Python的版本。Python expect: python expect模块PE expect简单应用Perl版本:Expect也被移植到Perl等语言中。叫Expect.pm,很好用,但应该不是主流。2.要使用Expect,您应该掌握EXpect中定义的命令。

  如期望、产生、发送、等待等。

  该参考主要包括:

  期待手动?Expect http://www.tcl.tk/man/expect5.31/expect.1.html联机帮助页

  还有一个网站也是expect命令介绍http://www.cotse.com/dlf/man/expect/index.htm.

  expect中最重要的四个命令是send、Expect、spawn和interact。

  Send:用于向进程发送字符串expect:从进程接收字符串spawn:启动新进程interact:允许用户交互1。send命令Send命令接收一个字符串参数,并将其发送给进程。

  期待1.1发送“hello world \ n”hello world 2。expect命令(1)基础知识Expect命令与send命令正好相反。Expect通常用于等待流程的反馈。Expect可以接收字符串参数或正则表达式参数。结合上面的send命令,现在我们可以看看最简单的交互示例:

  期待“嗨\n”发送“你好!\n 这两行代码的意思是:从标准输入,等到hi和换行键,在那里输出hello到标准输出

  提示:$ expect _ out (buffer)存储所有要期待的输入,$expect_out(0,string)存储与expect参数匹配的输入。例如,下面的程序:

  Expect hi \ n send 您键入了expect _ out(buffer) send ,但在标准输入中输入时,我只需要expect _ out(0,string)

  Testhi是的,运行结果如下

  你键入:test hii only expect:hi(2)pattern-action expect最常用的语法是来自tcl语言的pattern-action。这种语法极其灵活,下面我们将分别解释每种语法。

  单分支模式语法:

  Expect hi { send You said hi }匹配到hi后会输出 You say hi 。

  多分支模式语法:

  expect hi { send you say hi \ n} hello { send hello yourself \ n } bye { send 这是意外的\ n }当hi,hello和bye的任意字符串匹配时,执行相应的输出。相当于下面的写法:

  期待{ hi { send you say hi \ n } hello { send hello yourself \ n } bye { send 这是意外的\ n} 3。spawn命令上面的所有演示都与标准输入和输出交互,但我们希望他能与某个进程交互。spawm命令用于启动一个新进程。spawn与spawn打开的进程交互后的Send和expect命令。结合上面的send和expect命令,我们可以看到更复杂的程序段。

  set time out-1 spawn ftp ftp.test.com//Open新进程,其用户连接到远程FTP服务器expect Name //当进程返回名称时,发送 user //Enter anonymous \ r expect Password://当进程返回密码时,发送 123456 \ r ://Enter don @ liberes.com \ r expect FTP //发送 binary\ r 当进程返回FTP//Enter binary \ r expect FTP /Send get test . tar . gz \ r //Enter get test . tar . gz \ r这段代码的作用是登录ftp服务器FTP FTP.ftp.edamame.net,以二进制方式在服务器上下载文件test.tar.gz。节目里有详细的评论。

  4 .交互到目前为止,我们已经能够通过结合spawn、expect和send来自动化许多任务。然而,如何让人们在适当的时候介入这个过程。比如下载ftp文件后,仍然可以停留在ftp命令行状态,这样就可以手动执行后续命令。Interact可以实现这些目标。下面的演示允许用户在自动登录ftp后进行交互。

  spawn FTP FTP . test . com expect Name send user \ r expect Password: send 123456 \ r interact

郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。

留言与评论(共有 条评论)
   
验证码: