Xshell脚本学习

什么是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

  • 2
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

昨夜风1992

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值