在expect中通过exec cmd 来执行系统命令。
% exec date 2014年 04月 22日 星期二 16:00:39 CST % exec date > date.txt % exec cat date.txt 2014年 04月 22日 星期二 16:00:53 CST
% puts "my name is [exec whoami]" my name is root
expect中文件操作
1.打开文件的模式
#open打开文件 % open "/root/jiang.exp" "r" #默认模式读 file4 % open "/root/jiang.exp" "w" #写 file5 % open "/root/jiang.exp" "a"#追加 file6 #close 关闭文件 % close file4 % close file5 % close file6 #puts向文件写内容 % set file [open /root/date.date w] file4 % puts $file "hello world" % exec cat date.date % flush $file % exec cat date.date hello world #gets 或read读取文件 [root@zhu ~]# expect jiang.exp 192.168.56.101 192.168.56.102 [root@zhu ~]# cat jiang.exp #!/usr/bin/expect set file [open /root/ip.list] while {[gets $file line] != -1} { puts $line } ##################### #gets 文件标志符 变量 变量保存读取的内容 #gets每次读取文件的一行,返回的是读取的字符长度,当读取到最后时返回值为-1 while {[gets $file line] != -1} # do something with $line } 读取文件内容常用代码
#read指令也是用来读取文件内容的,读取方式是读取固定的字符;gets是逐行读取 % set file [open /root/ip.list] file9 % read $file 5 192.1