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




相关文章
|
1月前
|
Java
【Java每日一题】— —第二十一题:编程把现实生活的手机事物映射成一个标准类Phone,并定义一个测试类PhoneDemo测试Phone类的功能
【Java每日一题】— —第二十一题:编程把现实生活的手机事物映射成一个标准类Phone,并定义一个测试类PhoneDemo测试Phone类的功能
35 0
|
3月前
|
测试技术 Python
Playwright系列(4):录制测试脚本
Playwright系列(4):录制测试脚本
|
4月前
|
人工智能 算法 编译器
C语言初阶测评题:测试你的基础知识和编程技能!!
C语言初阶测评题:测试你的基础知识和编程技能!!
49 1
|
4月前
|
人工智能 测试技术 开发者
软件测试/人工智能|Python函数与调用:解放编程力量的关键
软件测试/人工智能|Python函数与调用:解放编程力量的关键
45 0
|
10天前
|
JSON 测试技术 持续交付
自动化测试与脚本编写:Python实践指南
【4月更文挑战第9天】本文探讨了Python在自动化测试中的应用,强调其作为热门选择的原因。Python拥有丰富的测试框架(如unittest、pytest、nose)以支持自动化测试,简化测试用例的编写与维护。示例展示了使用unittest进行单元测试的基本步骤。此外,Python还适用于集成测试、系统测试等,提供模拟外部系统行为的工具。在脚本编写实践中,Python的灵活语法和强大库(如os、shutil、sqlite3、json)助力执行复杂测试任务。同时,Python支持并发、分布式执行及与Jenkins、Travis CI等持续集成工具的集成,提升测试效率和质量。
|
1月前
|
数据采集 数据处理 开发工具
argparse是你的好帮手:快速编写自动化脚本、测试脚本、数据处理脚本
argparse是你的好帮手:快速编写自动化脚本、测试脚本、数据处理脚本
|
1月前
|
前端开发 Java 测试技术
《手把手教你》系列基础篇(五)-java+ selenium自动化测试- 创建首个自动化脚本(详细教程)
【2月更文挑战第14天】《手把手教你》系列基础篇(五)-java+ selenium自动化测试- 创建首个自动化脚本(详细教程) 前面几篇宏哥介绍了两种(java和maven)环境搭建和三大浏览器的启动方法,这篇文章宏哥将要介绍第一个自动化测试脚本。前边环境都搭建成功了,浏览器也驱动成功了,那么我们不着急学习其他内容,首先宏哥搭建好的环境中创建首个完整的自动化测试脚本,让小伙伴或者童鞋们提前感受感受,也是为了激起大家的学习兴趣。宏哥的个人经验是:自动化脚本编写比较容易,最大的困难去如何去写测试断言。自动化测试,最重要的还是落在测试上面,而不是自动化,自动化只是手段。
38 1
《手把手教你》系列基础篇(五)-java+ selenium自动化测试- 创建首个自动化脚本(详细教程)
|
1月前
|
测试技术 持续交付
单元测试模块化编程
单元测试模块化编程
15 1
|
2月前
|
SQL 监控 测试技术
Lim测试平台变量使用规则介绍
Lim测试平台变量使用规则介绍
27 0
|
3月前
|
测试技术
PlayWright系列(2):如何写测试脚本
PlayWright系列(2):如何写测试脚本
PlayWright系列(2):如何写测试脚本