python shell 运行时不打印日志_Shell 编程核心技术二

6f752fae5a9ba67406429d408c9e52d2.png

点击上方蓝字关注我们

0ba37461c1b68b8784cdf176b41d4ee9.png

今天继续分享Shell 编程核心技术相关的知识,接着昨天的内容继续来讲。

“ Shell 编程核心技术《一》”这篇文章内容没看的同学,请自行去公众号补课哟~好啦,开始今天的文章分享。

1

特殊符号的使用

94bda22e859f3fec347e71156fc5a4ce.png

例如:输入 x=$(echo abc) 指令将字符串 abc 存入 x 变量中,这时输入 echo $x 指令,你会看到 $() 会把括号内的命令执行然后把输出结果作为值传递给变量。

f419f50d393ec448acd1985eb64812dc.png

还有一个需要注意的是序列,比如我们想从 1~10 获取一个序列,可以输入 echo {1..10} 指令来打印 1~10 的数字。

0fefcfae593db0581a9d04d8fc545858.png

还可以使用 seq 1 10,它们是等价的。

2

 变量类型

在 Shell 中是不区分变量类型的,这一点和 Python 很像,所有的变量都是基础类型,只在运行时做动态解析。其中字符串、数字、布尔是比较常用的。

首先是字符串,字符串常用于一些类似掐头、去尾、替换的操作,课后你可以自己去练习,这里不再具体演示。

然后是布尔类型,布尔的基本表现形式是 true 和 false,需要注意的是在 Shell 中有一个特殊的用法,如果是某个命令返回的是 0,则表示这个进程是正常工作的。

8583cde35f814c72bb3f83e804cb4cda.png

例如:输入 ls /tmp/hello.txt ;echo $? 指令,你可以看到返回值是 0,表示该进程运行正确,如果返回其他值就表示进程运行错误。

a733e042db2a4663326858ed833dcec4.png

例如:输入 ls /tmp/hello.txtaaa ;echo $? 指令运行一个不存在的文件,输出为 1 表示运行错误。

3

 判断

判断主要包括算数判断,与或非的逻辑判断,还有一些 Shell 中内置的判断三个方面。首先来看下算数判断,通常算数判断可以用来比较两个变量间的关系,比如两个数字的大小比较,字符串的匹配关系,等等。

除了简单的条件判断之外,Shell 还支持复杂的与、或、非逻辑判断。

除此之外,Shell 还提供了一些内置判断,比如:

  • -e file 表示如果文件存在,则结果为真;

  • -d file 表示如果文件是一个子目录,则结果为真;

  • -f file 表示如果文件是一个普通文件,则结果为真;

  • -r file 表示如果文件可读,则结果为真;

  • -s file 表示如果文件的长度不为 0,则结果为真;

  • -w file 表示如果文件可写,则结果为真;

  • -x file 表示如果文件可执行,则结果为真。

因为数组不经常使用,这里就不再详细讲解,如果你感兴趣可以课后自己练习。

4

 逻辑控制

学完变量的相关知识,我们继续学习逻辑控制,基于数据可以设计一些逻辑,如下所示:

  • 条件判断 if;

  • 分支判断 case、select,根据不同的条件进行不同的处理;

  • 循环 for、while、until;

  • break 和 continue,退出循环。

你可以看到整个逻辑控制和 Python 是很相似的。

5

 if判断

首先看下 if 条件判断,if 首先检测判断条件是否成立,如果成立则执行 then 语句块内的逻辑,else 执行判断不成立的逻辑,还有 elif…if…,它类似于 Python,当条件都不满足时去判断下一个条件。

6

for 循环 

然后是 for 循环,for 循环在 Shell 中有两种用法。
第一种用法类似 Java 或 Python ,从 1~10 进行循环,这个时候可以使用 for((i=0;i<10;i++)) 实现,这种用法是根据基数进行精准循环次数的一个判断。

第二种用法是 for 遍历循环,你可以使用 for…in…语句块

d0f76b52a9b960962a05838cb90aa473.png

例如:输入 for i in $(seq 1 3 10) 指令,然后在 do 语句块中打印 echo $i 的值,do 语句块以 done 结束。

你可以看到打印了 1、4、7、10,这个就是 for 循环的遍历用法。

7

 while 循环

最后是 while 循环,和 for 循环很像,while 首先判断条件,条件成立则在 do 语句块中执行操作。

cf58a7d175ba43a122294f4a80d5aa20.png

例如:定义 i=0,然后输入 while ((i<3));do((i=i+1));sleep 1;echo $i;done 指令。

你可以看到,输出结果每隔 1 秒打印一个 i 的值,而 i 的值逐渐增加,直到等于 3 时不再满足条件,退出循环。

而 while 还有一个很常用的功能,就是通过 while read line 循环读取文件的每一行

992bf7eeb3f6c7391e18ec24d8089ceb.png

例如:输入 while read line;do echo $line;done< /tmp/hello.txt 指令,它就会打印出文件的每一行信息。

da578c13a620a0dfddb29f6ac40552f2.png

除此之外,使用管道也是可以的,输入 cat /tmp/hello.txt | while read line;do echo $line;done 指令,输出效果是一样的。

8

退出控制 

而有一些复杂的条件需要适时退出,这个时候就需要我们掌握控制退出的语句,比如:

  • return 函数返回;

  • exit 脚本进程退出;

  • break 退出当前循环;

  • continue 跳出当前循环,进入下一次循环。

友情提示:“无量测试之道”原创著作,欢迎关注交流,禁止第三方不显示文章来源时转载。更多原创文章请扫码关注查看,交流与合作请联系:loadkernel@126.com。

QQ技术交流群:41564936

c1fec0d578d450dd5b8fa4bc8c63ae6c.png

Shell 编程核心技术《一》

Python UI自动化测试实操

Pytest 可视化测试报告之 Allure

python+Appium之APP自动化测试

Python+appium框架原生代码实现App自动化测试

AirTest-selenium基于Web实现UI自动化测试

Python API自动化测试实操

Python 测试框架之 Unittest & Pytest

e02ea3bd86682bbdf8f105d28f910191.png

50d96b9ff67462a2855f6f96d3cae279.gif

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值