关于expect脚本问题,求解答下

回复 收藏
#!/usr/bin/expect
set a "12345678"
spawn passwd user_00
expect
{
"新的*"  { send "$a\r" }
"重新输入*"  { send "$a\r" }
}
send "exit\r"


这是自己写的一个简单的expect测试脚本目的是为了让它自动能够改写用户user_00的密码,而不需要人去输入密码,预先设定的密码为a=12345678
执行后的结果在下面。。。我自己尝试了很多,但就是没有得到有效的解决办法。。(我在想,那个匹配的地方有问题,但是又没法真正解决)
2016-02-04 22:31 举报
已邀请:
0

daixiangzi

赞同来自:

这是运行的截图
0

阿铭 管理员

赞同来自:

在脚本中运行时,它并不一定是中文。 你这样试试看,把系统语言改为英文。你的脚本也要改为英文。
LANG=en  直接运行这个命令即可。
0

daixiangzi

赞同来自:

阿铭 发表于 2016-2-5 09:21
在脚本中运行时,它并不一定是中文。 你这样试试看,把系统语言改为英文。你的脚本也要改为英文。
LANG=e ...

还是不行,会出现同样的问题
0

daixiangzi

赞同来自:

daixiangzi 发表于 2016-2-5 12:14
还是不行,会出现同样的问题

是不是我写的这个脚本格式有问题。。。。
0

daixiangzi

赞同来自:

阿铭 发表于 2016-2-5 09:21
在脚本中运行时,它并不一定是中文。 你这样试试看,把系统语言改为英文。你的脚本也要改为英文。
LANG=e ...

解决了,,格式不对还是,,,这样些就对了,,但是还是不知道为什么这样写就可以
#!/usr/bin/expect
set a "1234567"
spawn passwd user_00
expect "新*"
send "$a\r"
expect "重新*"
send "$a\r"

send "exit\r"
expect eof
0

daixiangzi

赞同来自:

daixiangzi 发表于 2016-2-5 12:29
解决了,,格式不对还是,,,这样些就对了,,但是还是不知道为什么这样写就可以
#!/usr/bin/expect
s ...

知道了,我写的第一个是并行结构,第二个是串行结构
0

lyhabc

赞同来自:

expect
{
"新的*"  { send "$a\r" }
"重新输入*"  { send "$a\r" }
}
这种结构一般是登录的时候才用  
0

daixiangzi

赞同来自:

lyhabc 发表于 2016-2-5 14:30
expect
{
"新的*"  { send "$a\r" }

嗯嗯。知道了谢谢

回复帖子,请先登录注册

退出全屏模式 全屏模式 回复
评分
可选评分理由: