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月前
|
测试技术 Linux
VPS一键测试脚本,无痕体验+自动导出,服务器测试更轻松
NodeQuality 是一款整合 Yabs、IPQuality、NetQuality 等主流 VPS 测试脚本的全能工具,支持一键测试硬件性能、IP属性、网络质量,并新增分享与导出功能。其“无痕测试”设计不安装依赖、不留残留,兼容性强;测试结果自动排版、截图并生成分享链接,极大提升效率。适合需要全面、快速、干净测试 VPS 的用户,是运维和测评的高效利器。
641 3
|
人工智能 自然语言处理 安全
学不会编程也能写测试?AI让测试更平权
在传统的软件开发体系中,测试常被划分为“技术型测试”(如自动化、性能、安全)和“业务型测试”(如功能验证、用户体验)。前者掌握技术话语权,后者则更多依赖经验和流程规范。然而,随着大语言模型(LLM)等AI技术的迅猛发展,这一固有格局正被悄然打破:
388 10
|
8月前
|
存储 测试技术 API
数据驱动开发软件测试脚本
今天刚提交了我的新作《带着ChatGPT玩转软件开发》给出版社,在写作期间跟着ChatGPT学到许多新知识。下面分享数据驱动开发软件测试脚本。
316 0
|
10月前
|
Web App开发 JavaScript 测试技术
Playwright 极速入门:1 小时搞定环境搭建与首个测试脚本
本文带你1小时快速入门Playwright,完成环境搭建并编写首个测试脚本。Playwright是微软推出的现代化Web自动化测试工具,支持Chromium、Firefox和WebKit三大浏览器引擎,具备跨平台、多语言(Python/JS/Java/C#)特性。其核心优势包括:智能自动等待机制减少失败率、内置录制工具实时生成脚本、多语言灵活选择,以及真移动端设备模拟能力,显著提升测试效率和可靠性。
|
前端开发 JavaScript 测试技术
使用ChatGPT生成登录产品代码的测试用例和测试脚本
使用ChatGPT生成登录产品代码的测试用例和测试脚本
437 35
|
机器学习/深度学习 设计模式 测试技术
Python 高级编程与实战:构建自动化测试框架
本文深入探讨了Python中的自动化测试框架,包括unittest、pytest和nose2,并通过实战项目帮助读者掌握这些技术。文中详细介绍了各框架的基本用法和示例代码,助力开发者快速验证代码正确性,减少手动测试工作量。学习资源推荐包括Python官方文档及Real Python等网站。
|
前端开发 JavaScript Java
通过ChatGPT生成测试用例和测试脚本(2)
通过ChatGPT生成测试用例和测试脚本
455 21
|
数据可视化 前端开发 测试技术
接口测试新选择:Postman替代方案全解析
在软件开发中,接口测试工具至关重要。Postman长期占据主导地位,但随着国产工具的崛起,越来越多开发者转向更适合中国市场的替代方案——Apifox。它不仅支持中英文切换、完全免费不限人数,还具备强大的可视化操作、自动生成文档和API调试功能,极大简化了开发流程。
|
11月前
|
Java 测试技术 容器
Jmeter工具使用:HTTP接口性能测试实战
希望这篇文章能够帮助你初步理解如何使用JMeter进行HTTP接口性能测试,有兴趣的话,你可以研究更多关于JMeter的内容。记住,只有理解并掌握了这些工具,你才能充分利用它们发挥其应有的价值。+
1498 23
|
SQL 安全 测试技术
2025接口测试全攻略:高并发、安全防护与六大工具实战指南
本文探讨高并发稳定性验证、安全防护实战及六大工具(Postman、RunnerGo、Apipost、JMeter、SoapUI、Fiddler)选型指南,助力构建未来接口测试体系。接口测试旨在验证数据传输、参数合法性、错误处理能力及性能安全性,其重要性体现在早期发现问题、保障系统稳定和支撑持续集成。常用方法包括功能、性能、安全性及兼容性测试,典型场景涵盖前后端分离开发、第三方服务集成与数据一致性检查。选择合适的工具需综合考虑需求与团队协作等因素。
1987 24