bash脚本编程之四,整数测试以及特殊变量

简介:

exit:退出脚本

exit:#    #为退出码,取值范围:0-255 一般0为正常退出,1,127预留给系统,剩下的自定义


bash中常用的条件测试有三种:

整数测试:

    -gt

    -le

    -ne

    -eq

    -ge

    -lt

    格式:

        A=1

        B=2

        [ $A -eq $B ]

        [[ $A -eq $B ]

        test  $A -eq $B 


文件测试:

    -e FILE:测试文件是否存在 exists

    -f FILE:测试文件是否为普通文件

    -d FILE:测试指定文件是否为目录

    -r FILE:测试当前用户是否对文件具有读权限

    -w FILE:测试当前用户是否对文件具有写权限

    -x FILE:测试当前用户是否对文件具有执行权限


字符测试:

    ==:测试两个字符串是否相等

    !=:测试两个字符串是否不等

    >或<:对比两个字符串的大小(先转换为ASCII的值,然后对比)

    -n:测试字符串是否为空,空为真,不空为假

    -z:测试字符串是否为不空,不空为真,空则为假


测试脚本是否语法错误:

bash -n 脚本


bash -x 脚本:单步执行脚本(可以看到脚本的执行过程)


练习:写一个脚本

给定一个文件:

    如果是一个普通文件,就显示之

    如果是一个目录,亦显示之

    否则,显示无法识别

#!/bin/bash

if [ $# -lt 1 ];then

        echo  "Usage: ./checkfile.sh  ARG .."

        exit 2

fi

if  [ ! -e $1 ];then

        echo $1 not exists!

        exit 7

        elif [ -f  $1 ];then

                echo  "comman files!"

        elif [ -d $1 ];then

                echo "directory  files!"

        else

                echo "unknow files!"

fi


定义脚本退出状态码:

    exit:退出脚本

    exit #:设置脚本退出码为#(0-255,0、1、127一般留作系统备用),如果脚本没有明确定义退出状态码,那么,最后一条执行的命令的退出码即为脚本的退出码。


bash的变量的类型:

    本地变量:作用域为当前shell进程

    环境变量:作用域为当前shell及其子shell进程

    位置变量:

        $1、$2、...

        shift:把位置变量进行传递

    特殊变量:

        $#:参数的个数

        $*:参数列表

        $@:参数列表

        $?:命令的执行状态结果


shift示例:

[root@logstach ~]# cat 1.sh 

#!/bin/bash

echo  "before shift : \$1: $1 \$2: $2 \$3: $3 \$4: $4 \$5: $5"

shift 1

echo  "now shift 1  : \$1: $1 \$2: $2 \$3: $3 \$4: $4 \$5: $5"

shift 2

echo  "now shift 2  : \$1: $1 \$2: $2 \$3: $3 \$4: $4 \$5: $5"  

[root@logstach ~]# ./1.sh 1 2 3 4 5 6 7 8 9 10

before shift : $1: 1 $2: 2 $3: 3 $4: 4 $5: 5

now shift 1  : $1: 2 $2: 3 $3: 4 $4: 5 $5: 6

now shift 2  : $1: 4 $2: 5 $3: 6 $4: 7 $5: 8














本文转自biao007h51CTO博客,原文链接: http://blog.51cto.com/linzb/1732868,如需转载请自行联系原作者




相关文章
|
11天前
|
存储 监控 测试技术
测试脚本编写和维护的最佳实践有哪些?
测试脚本编写和维护的最佳实践有哪些?
|
7天前
|
数据库连接 Go 数据库
Go语言中的错误注入与防御编程。错误注入通过模拟网络故障、数据库错误等,测试系统稳定性
本文探讨了Go语言中的错误注入与防御编程。错误注入通过模拟网络故障、数据库错误等,测试系统稳定性;防御编程则强调在编码时考虑各种错误情况,确保程序健壮性。文章详细介绍了这两种技术在Go语言中的实现方法及其重要性,旨在提升软件质量和可靠性。
15 1
|
11天前
|
存储 监控 前端开发
如何确保测试脚本的稳定性和可靠性?
确保测试脚本的稳定性和可靠性是保证性能测试结果准确有效的关键
|
11天前
|
监控 网络协议 Java
一些适合性能测试脚本编写和维护的工具
一些适合性能测试脚本编写和维护的工具
|
11天前
|
测试技术 数据库连接 数据库
测试脚本的编写和维护对性能测试结果有何影响?
测试脚本的编写和维护对性能测试结果有着至关重要的影响,
21 1
|
27天前
|
JSON 测试技术 持续交付
自动化测试与脚本编写:Python实践指南
自动化测试与脚本编写:Python实践指南
28 1
|
14天前
|
JSON Java 测试技术
SpringCloud2023实战之接口服务测试工具SpringBootTest
SpringBootTest同时集成了JUnit Jupiter、AssertJ、Hamcrest测试辅助库,使得更容易编写但愿测试代码。
49 3
|
1月前
|
JSON 算法 数据可视化
测试专项笔记(一): 通过算法能力接口返回的检测结果完成相关指标的计算(目标检测)
这篇文章是关于如何通过算法接口返回的目标检测结果来计算性能指标的笔记。它涵盖了任务描述、指标分析(包括TP、FP、FN、TN、精准率和召回率),接口处理,数据集处理,以及如何使用实用工具进行文件操作和数据可视化。文章还提供了一些Python代码示例,用于处理图像文件、转换数据格式以及计算目标检测的性能指标。
67 0
测试专项笔记(一): 通过算法能力接口返回的检测结果完成相关指标的计算(目标检测)
|
2月前
|
移动开发 JSON Java
Jmeter实现WebSocket协议的接口测试方法
WebSocket协议是HTML5的一种新协议,实现了浏览器与服务器之间的全双工通信。通过简单的握手动作,双方可直接传输数据。其优势包括极小的头部开销和服务器推送功能。使用JMeter进行WebSocket接口和性能测试时,需安装特定插件并配置相关参数,如服务器地址、端口号等,还可通过CSV文件实现参数化,以满足不同测试需求。
248 7
Jmeter实现WebSocket协议的接口测试方法
|
2月前
|
JSON 移动开发 监控
快速上手|HTTP 接口功能自动化测试
HTTP接口功能测试对于确保Web应用和H5应用的数据正确性至关重要。这类测试主要针对后台HTTP接口,通过构造不同参数输入值并获取JSON格式的输出结果来进行验证。HTTP协议基于TCP连接,包括请求与响应模式。请求由请求行、消息报头和请求正文组成,响应则包含状态行、消息报头及响应正文。常用的请求方法有GET、POST等,而响应状态码如2xx代表成功。测试过程使用Python语言和pycurl模块调用接口,并通过断言机制比对实际与预期结果,确保功能正确性。
257 3
快速上手|HTTP 接口功能自动化测试
下一篇
无影云桌面