什么是Xshell脚本
Xshell是常用的串口终端软件,界面比较友好,且功能强大。最近在对计算机的稳定性进行测试,需要控制机器不断的重启,具体有两种实现方式:1)在操作系统写重启的脚本,实现计算机的重启操作;2)由于机器在启动的时候,可以通过串口终端也可以控制机器重启。第一种方式需要写bash脚本,不太熟悉,所以采用第二种方式。Xshell支持运行脚本,下面先对脚本进行简单介绍。
怎么使用脚本
首先打开Xshell软件,找到工具选项卡–>脚本–>运行,此时会弹出打开需要运行的脚本文件对话框,以运行软件自带的sample为例,如下图所示。 软件自带的示例如图所示,分别session和screen两种,每种里面都有3种语言(javascript、python及vb)。 打开其中一个vb脚本,如下所示。
Sub Main
xsh.Session.Open("C:\...\NetSarang\Xshell\Sessions\New Session.xsh")
xsh.Screen.Synchronous = true
xsh.Session.Sleep(1000)
'*** WaitForString ***
xsh.Screen.WaitForString("aaa") ' input "aaa" in Terminal
'*** Send ***
xsh.Screen.Send("cat /etc/passwd")
xsh.Screen.Send(VbCr)
xsh.Session.Sleep(1000)
'*** Get, Clear ***
Dim ScreenRow, ReadLine, Items
ScreenRow = xsh.Screen.CurrentRow - 1
ReadLine = xsh.Screen.Get(ScreenRow, 1, ScreenRow, 40)
Items = Split(ReadLine, ":", -1)
xsh.Dialog.MsgBox(Items(2))
xsh.Screen.Clear()
'*** Property ***
xsh.Screen.Synchronous = False
Dim MsgProp
MsgProp = "Col:" + CStr(xsh.Screen.CurrentColumn) + ", "
MsgProp = MsgProp + "Row:" + CStr(xsh.Screen.CurrentRow) + ", "
MsgProp = MsgProp + "TermCol:" + CStr(xsh.Screen.Columns) + ", "
MsgProp = MsgProp + "TermRow:" + CStr(xsh.Screen.Rows)
xsh.Dialog.MsgBox(MsgProp)
End Sub
脚本示例
根据以上的学习,编写自己的脚本。我的需求是当终端显示“xxxx ttyS0”字符串时,发送用户名字符串,随后回车,输入密码随后回车,输入lspci(查看系统pci设备),随后回车,输入lsusb(查看usb设备),随后回车,输入sudo reboot随后回车,输入密码,随后回车,等待下一次终端出现“xxxx ttyS0”字符串,进行下一次循环,具体代码如下
Sub Main
xsh.Screen.Synchronous = true '使窗口显示与当前输出同步
while(1)
xsh.Screen.WaitForString "xxxx ttyS0" ' 等待目标设备发回 "xxxx ttyS0" 字符串
xsh.Sleep 2000 ' 等待2s
xsh.Screen.Send "xxxxxx" ' 发送"xxxxxx" 字符串
xsh.Screen.Send VbCr ' 发送回车
xsh.Sleep 2000
xsh.Screen.Send "123123"
xsh.Screen.Send VbCr
xsh.Sleep 2000
xsh.Screen.Send "lspci"
xsh.Screen.Send VbCr
xsh.Sleep 500
xsh.Screen.Send "lsusb"
xsh.Screen.Send VbCr
xsh.Sleep 500
xsh.Screen.Send "sudo reboot"
xsh.Screen.Send VbCr
xsh.Sleep 500
xsh.Screen.Send "123123"
xsh.Screen.Send VbCr
Wend
End Sub
Xshell快捷键
屏幕和滚动缓冲区清除:Ctrl + Shift + A 清屏:Ctrl + Shift + L 滚动缓冲区清除:Ctrl + Shift + B
|