首页
学习
活动
专区
圈层
工具
发布

测试开发进阶(四十)

运算

代码语言:javascript
复制
$ echo $((10 + 20))# 30$ one=25$ two=12$ echo $((one+two))# 37
代码语言:javascript
复制
$ echo $((one>two))# 1$ echo $((one<two))# 0

expr

代码语言:javascript
复制
$ echo $(expr $one+$two)# 25+12$ echo $(expr $one + $two)# 37

比较大小需要转义

代码语言:javascript
复制
$ echo $(expr $one \> $two)$ echo $(expr $one \< $two)

条件表达式

返回值

  • 条件成立,返回0
  • 条件不成立,返回1

逻辑表达式

  • &&
  • ||

文件表达式

  • -f判断输入内容是非为一个文件
  • -d判断输入内容是非为一个目录
  • -x判断输入内容是非可执行
  • -e判断文件是非存在

数值操作符

  • -eq相等
  • -gt大于
  • -lt小于
  • -ne不等于

字符串比较

  • ==
  • !=

进行判断

test[]效果一致

代码语言:javascript
复制
$ [ 1 = 2 ] && echo "条件不成立"$ [ 1 = 2 ] || echo "条件不成立"$ test 1 = 2 && echo "条件不成立"$ test 1 = 2 || echo "条件不成立"

查看使用方法

代码语言:javascript
复制
$ man [ ]$ man test

Shell脚本

格式要求

  • 在文件首行指定执行shell的程序
代码语言:javascript
复制
#!/bin/bash#Author:zhongxin
  • 后缀建议为 .sh
  • 执行失败时,使用 exit返回非零值,来退出程序
  • 默认锁进4个空格

执行脚本

代码语言:javascript
复制
# 第一种方式$ bash 1126.sh# 第二种方式$ chmod +x 1126.sh$ ./1126.sh# 第三种方式$ source 1126.sh

注释

  • 单行注释: #
  • 多行注释
代码语言:javascript
复制
#!/bin/bash#Author:zhongxin:<<!要注释的内容!pwd

函数

格式一

代码语言:javascript
复制
#!/bin/bash函数名(){    ...}

格式二

代码语言:javascript
复制
#!/bin/bashfunction 函数名{    ...}
代码语言:javascript
复制
#!/bin/bash#Author:zhongxin:<<!要注释的内容!hello(){    echo "Hello,Shell"}hellofunction greet{    echo "Hello,zx"}greet

入参

代码语言:javascript
复制
function greet{    echo "Hello,$1"    echo "Hello,$2"    echo "Hello,$3"}greet 'a' 'b' 'c'

接收命令行传参

代码语言:javascript
复制
greet $1 $2 $3
代码语言:javascript
复制
#!/bin/bash#Author:zhongxinread -p "请输入你的姓名:" nameread -p "请输入你的年龄:" ageread -p "请输入你的爱好:" function info{    # -e 运行\n换行    echo -e "你的姓名为:${name}\n你的年龄为:${age}\n你的爱好为:${REPLY}"}info

流程控制

if

代码语言:javascript
复制
if [ 条件1 ]then    指令1elif [ 条件2 ]then    指令2else    指令2fi

例子:

代码语言:javascript
复制
#!/bin/bash#Author:zhongxinread -p "输入你的年龄:"if [ ${REPLY} -ge 70 ]then    echo "好好养生"elif [ ${REPLY} -ge 18 ]then    echo "好好工作"else    echo "好好学习"fi

for

方式一
代码语言:javascript
复制
for 值 in 列表do    执行语句done

例子

代码语言:javascript
复制
dirs=$(ls /)for i in ${dirs}do    index=$((${index} + 1))    echo "${index}.${i}"done
方式二
代码语言:javascript
复制
max=10for ((i=1;i<=max;i++))do    执行语句done

例子

代码语言:javascript
复制
#!/bin/bash#Author:zhongxinmax=10for ((i=0;i<=max;i++))do    echo "i=${i}"done
举报
领券