js调用linux命令,xshell调用js脚本开发

转载请注明出处:https://blog.csdn.net/xuezoutianya/article/details/81605604

在编写xshell脚本的过程中用到最多的就是自动输入,自动捕获,延时等语句

自动输入

以自动输入xyz为例

自动输入的语句:xsh.Screen.Send("xyz");

当然,如果你输入的是一条命令,还需要下面这一行输入回车

输入回车的语句:xsh.Screen.Send(String.fromCharCode(13));

自动捕获

以linux系统为例,一般程序执行的打印数据位于倒数第二行,如下图所示

d2218e15a6ea329640a0f348d0fb76ae.png

/* 字符串处理 */

var ScreenRow, ReadLine, Items;

/* 读取倒数第二行,长度为40个字符 */

ScreenRow = xsh.Screen.CurrentRow - 1;

ReadLine = xsh.Screen.Get(ScreenRow, 1, ScreenRow, 40);

延时

以等待1s为例

延时语句:xsh.Session.Sleep(1000);

其他

打开新会话:xsh.Session.Open(string);

对话框提醒:xsh.Dialog.MsgBox(string);

设置日志路径:xsh.Session.LogFilePath = string;

开始记录日志:xsh.Session.StartLog();

清屏函数:xsh.Screen.Clear();

等待输入:xsh.Screen.WaitForString(string);

示例

本文以一个自动测试脚本为例,定时向/tmp/test文件写入数据,然后回读打印,截获回读打印的值进行分析

/* 测试函数 */

function test()

{

/* 发送echo 112233 > /tmp/testfile */

xsh.Screen.Send("echo 112233 > /tmp/testfile");

xsh.Screen.Send(String.fromCharCode(13));

/* 发送cat /tmp/testfile */

xsh.Screen.Send("cat /tmp/testfile");

xsh.Screen.Send(String.fromCharCode(13));

/* 字符串处理 */

var ScreenRow, ReadLine, Items;

/* 读取末行的40个字符 */

ScreenRow = xsh.Screen.CurrentRow - 1;

ReadLine = xsh.Screen.Get(ScreenRow, 1, ScreenRow, 40);

/* 如果读取到的字符不是112233 */

if(ReadLine != "112233")

{

/* 会话框打印实际的字符串 */

xsh.Dialog.MsgBox(ReadLine);

}

}

/* 主函数 */

function Main()

{

/* 打开会话,根据实际的会话路径修改 */

xsh.Session.Open("C:\Users\Administrator\Documents\NetSarang Computer\6\Xshell\Sessions\ubuntu.xsh");

xsh.Screen.Synchronous = true;

/* 开始记录日志 */

xsh.Session.LogFilePath = "C:\Users\Administrator\Documents\NetSarang Computer\6\Xshell\Logs\example.log";

xsh.Session.StartLog();

/* 等待输入start */

//xsh.Screen.WaitForString("start");

/* 发送rm -rf /tmp/testfile */

xsh.Screen.Send("rm -rf /tmp/testfile");

/* 发送回车 */

xsh.Screen.Send(String.fromCharCode(13));

/* 发送touch /tmp/testfile */

xsh.Screen.Send("touch /tmp/testfile");

xsh.Screen.Send(String.fromCharCode(13));

/* 测试100次 */

for(var i = 1; i < 100; i++)

{

test();

xsh.Session.Sleep(500);

}

/* 清屏 */

//xsh.Screen.Clear();

}

运行脚本的操作:

eb87c14113b1fc362b5561db4954addd.png

实际执行结果如下:

c4308a05cd8fb91860c2cd4ca9e51346.png

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值