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,如需转载请自行联系原作者




相关文章
|
8月前
|
Java Shell
「sh脚步模版自取」测试线排查的三个脚本:启动、停止、重启、日志保存
「sh脚步模版自取」测试线排查的三个脚本:启动、停止、重启、日志保存
122 1
|
5月前
|
前端开发 JavaScript 测试技术
使用ChatGPT生成登录产品代码的测试用例和测试脚本
使用ChatGPT生成登录产品代码的测试用例和测试脚本
148 35
|
5月前
|
前端开发 JavaScript Java
通过ChatGPT生成测试用例和测试脚本(2)
通过ChatGPT生成测试用例和测试脚本
130 21
|
10月前
|
测试技术 数据库
自动化测试的救赎:揭秘代码复用的艺术,让测试脚本涅槃重生!
【8月更文挑战第21天】自动化测试对提升软件质量和开发效率至关重要,但其维护成本随项目规模增长而上升。采用代码复用策略能显著减轻这一负担。本文概述了自动化测试中实现代码复用的方法,包括抽象与封装、模块化、参数化、继承及利用测试框架等,以减少重复劳动、提高代码质量与开发速度,并简化维护流程。掌握这些策略将助力构建高效、可维护的自动化测试体系。
132 5
|
7月前
|
监控 网络协议 Java
一些适合性能测试脚本编写和维护的工具
一些适合性能测试脚本编写和维护的工具
223 59
|
7月前
|
存储 监控 前端开发
如何确保测试脚本的稳定性和可靠性?
确保测试脚本的稳定性和可靠性是保证性能测试结果准确有效的关键
165 58
|
7月前
|
存储 监控 测试技术
测试脚本编写和维护的最佳实践有哪些?
测试脚本编写和维护的最佳实践有哪些?
198 50
|
7月前
|
SQL 测试技术 API
如何编写API接口的自动化测试脚本
本文详细介绍了编写API自动化测试脚本的方法和最佳实践,涵盖确定测试需求、选择测试框架、编写测试脚本(如使用Postman和Python Requests库)、参数化和数据驱动测试、断言和验证、集成CI/CD、生成测试报告及维护更新等内容,旨在帮助开发者构建高效可靠的API测试体系。
|
7月前
|
测试技术 数据库连接 数据库
测试脚本的编写和维护对性能测试结果有何影响?
测试脚本的编写和维护对性能测试结果有着至关重要的影响,
99 1
|
7月前
|
JSON 测试技术 持续交付
自动化测试与脚本编写:Python实践指南
自动化测试与脚本编写:Python实践指南
224 1
下一篇
oss创建bucket