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

简介:

exit:退出脚本

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


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

整数测试:

    -gt

    -le

    -ne

    -eq

    -ge

    -lt

    格式:

        A=1

        B=2

        [ AeqB ]

        [[ AeqB ]

        test  Aeq


文件测试:

    -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进程

    位置变量:

        12、...

        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:12: 2 3:34: 4 $5: 5

now shift 1  : 1:22: 3 3:44: 5 $5: 6

now shift 2  : 1:42: 5 3:64: 7 $5: 8














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




目录
打赏
0
0
0
0
143
分享
相关文章
Python 高级编程与实战:构建自动化测试框架
本文深入探讨了Python中的自动化测试框架,包括unittest、pytest和nose2,并通过实战项目帮助读者掌握这些技术。文中详细介绍了各框架的基本用法和示例代码,助力开发者快速验证代码正确性,减少手动测试工作量。学习资源推荐包括Python官方文档及Real Python等网站。
|
5月前
|
「sh脚步模版自取」测试线排查的三个脚本:启动、停止、重启、日志保存
「sh脚步模版自取」测试线排查的三个脚本:启动、停止、重启、日志保存
72 1
使用ChatGPT生成登录产品代码的测试用例和测试脚本
使用ChatGPT生成登录产品代码的测试用例和测试脚本
96 35
通过ChatGPT生成测试用例和测试脚本(2)
通过ChatGPT生成测试用例和测试脚本
80 21
一些适合性能测试脚本编写和维护的工具
一些适合性能测试脚本编写和维护的工具
159 59
如何确保测试脚本的稳定性和可靠性?
确保测试脚本的稳定性和可靠性是保证性能测试结果准确有效的关键
143 58
CodeArena:在线 LLM 编程竞技场!用于测试不同开源 LLM 的编程能力,实时更新排行榜
CodeArena 是一个在线平台,用于测试和比较不同大型语言模型(LLM)的编程能力。通过实时显示多个 LLM 的代码生成过程和结果,帮助开发者选择适合的 LLM,并推动 LLM 技术的发展。
111 7
CodeArena:在线 LLM 编程竞技场!用于测试不同开源 LLM 的编程能力,实时更新排行榜
测试脚本编写和维护的最佳实践有哪些?
测试脚本编写和维护的最佳实践有哪些?
161 50
如何编写API接口的自动化测试脚本
本文详细介绍了编写API自动化测试脚本的方法和最佳实践,涵盖确定测试需求、选择测试框架、编写测试脚本(如使用Postman和Python Requests库)、参数化和数据驱动测试、断言和验证、集成CI/CD、生成测试报告及维护更新等内容,旨在帮助开发者构建高效可靠的API测试体系。
Go语言中的错误注入与防御编程。错误注入通过模拟网络故障、数据库错误等,测试系统稳定性
本文探讨了Go语言中的错误注入与防御编程。错误注入通过模拟网络故障、数据库错误等,测试系统稳定性;防御编程则强调在编码时考虑各种错误情况,确保程序健壮性。文章详细介绍了这两种技术在Go语言中的实现方法及其重要性,旨在提升软件质量和可靠性。
78 1

热门文章

最新文章