您的位置:首页 > 运维架构 > Linux

Linux 连续执行多条命令

2016-02-24 01:12 302 查看
很早之前初学Linux基本命令的时候,看到这个知识点,说实话觉得有点奇葩。一条一条执行多好,非得把几条命令写在一起。

最近项目在进行过程中,需要完成一些自动化回归测试。对了,就是传说中的“Automation”。

以前一直使用“shell+expect”组合。

后来在使用过程中,越发觉得expect这个东东太落后了,原因如下:

1. 官方已经停止发行新版本了;

2. 调试起来效率低,很多时候代码走的路子跟人想的差太多。

于是,后来决定使用python这一种脚本语言全部搞定。

实践证明,python开发效率非常高,的确是“糙快猛”。

停,跑题了。。。

在我的Automation case中,需要检查一个命令是否执行成功(假设命令为checklog,成功返回0,失败返回1)。

正常情况下,在checklog的下一句,直接“echo $?”,判断0,1即可。

但是,因为执行环境中的命令提示符中有0和1,所以pexpect无法判断“echo $?”的结果。

后来,琢磨着琢磨着,脑海里就冒出来上面的知识点来,试了一下,顺利解决问题特此Mark一下。

# 期望checklog执行成功

checklog && echo success

pexpect.expect('success')

# 期望checklog执行失败

checklog || echo failure

pexpect.expect('failure')

温习知识点:

1. 命令被分号“;”分隔,这些命令会顺序执行下去;

2. 命令被“&&”分隔,这些命令会顺序执行下去,遇到执行错误的命令停止;

3. 命令被双竖线“||”分隔,这些命令会顺序执行下去,遇到执行成功的命令停止,后面的所有命令都将不会执行;
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: