14、自动化脚本编写与远程登录技巧

自动化脚本编写与远程登录技巧

1. 脚本优化与改写

在脚本编写中,有许多细节需要注意。例如,在第二个发送命令中, $ 前面需要加反斜杠,这样可以防止 Tcl 对 status 变量进行本地变量替换,确保字符串 "$status" 按字面意思发送。如果使用 Bourne shell,Expect 脚本需要使用 $? 而不是 $status

正则表达式 "\r\n(.*)\r\n" 用于提取状态信息。为了理解为什么使用这个特定的模式,我们需要考虑脚本发送 "echo $status\r" 字符串后进程的返回情况。登录后,首先出现的是每日消息,接着是提示符(如 “%”)。发送命令(如 “quack twice”)并回车,远程 shell 会回显该命令,回车会被回显为 \r\n 序列。命令执行时可能会有输出,最后再次出现提示符,脚本请求回显状态,请求本身会被回显,后面跟着 "\r\n" 、状态信息和另一个 "\r\n"

为了优化脚本,可以进行以下修改:
- 禁用 expect 命令的超时设置,使用 set timeout -1
- 无需分别发送两个命令。
- 不需要显式写出回车换行序列的两个字符,只需要状态信息周围的字符。

改写后的脚本如下:


                
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值