Linux shell编程 8 ---- 退出+测试

简介:  1 退出状态     1 在Linux shell编程中,每个命令在脚本完成后都会有一个退出状态          2 退出状态用一个整数值表示,若退出状态为0表示成功,若退出状态非0表示失败。


 1 退出状态

    1 在Linux shell编程中,每个命令在脚本完成后都会有一个退出状态

    

    2 退出状态用一个整数值表示,若退出状态为0表示成功,若退出状态非0表示失败。

    

    3 最后一次执行命令的推出状态保存在内配变量"$?"中,我们可以通过echo $?来查看

    

    4 退出状态及其含义

       状态值              含义

          0                    表示运行成功,程序执行未遇到任何问题

         1~255             表示运行失败,脚本命令,系统命令错误或参数传递错误

         126                 找到了命令但无法执行

         127                 未找到要运行的命令

         >128               命令曾被系统强行结束

 

 2 测试

    1 测试命令可用于测试表达式的条件的真假,如果测试条件为真,则返回一个0,如果测试的条件为非假则返回一个非0的值

     

    2 测试命令有两种方式

       1 test expression 

          expression是一个表达式,该表达式可由数字,字符串,文本和文件属性的比较,同时可以加入各种算术,字符串, 文本等运算符。

       2 [ expression ] 

          其中[]是一个启动测试的命令,但是要求在[和]的后面和前面都要有一个空格,这种测试条件是计较常用的,经常和if,while等联用。

 

     3 整数数值的比较

        1 一般的整数比较方式是,假设两个整数为a和b

           [ $a -operator $b ]   // operator是比较符号


        2 如果是使用[]比较,那么operator有如下6种

           整数比较运算符                      描述

            [ $a -eq $b ]                  比较a是否和b相等

            [ $a -ge $b ]                  比较a是否大于等于b

            [ $a -gt $b ]                   比较a是否大于b

            [ $a -le $b ]                   比较a是否小于等于b

            [ $a -lt $b ]                    比较a是否小于b

            [ $a -ne $b ]                  比较a是否不等于b


     4 字符串比较

        1 同整数运算符一样,Linux中也提供了字符串运算符

        2 字符串运算符表

           字符串运算符                                    描述

               [ string ]                         测试字符串string是否不为空

               [ -n string ]                     测试字符串string是否不为空

               [ -z string ]                     测试字符串是否为空

               [ string1 = string2 ]        测试字符串string1和string2是否相等

               [ string1 != string2 ]       测试字符串string1和string2是否不相等


     5 文件操作符

        1 文件的测试操作也有两种方法

           test file_operator file   // file_operator是文件的操作符

           [ file_operator file ]     // file_operator是文件的操作符


        2 文件操作符表

            文件运算符                         描述

              [ -d file ]               测试文件file是否为目录

              [ -e file ]               测试文件file是否存在

              [ -f file ]                测试文件file是否为普通文件

              [ -r file ]                测试文件file是否是进程可读文件

              [ -s file ]               测试文件file的长度是否不为0

              [ -w file ]              测试文件file是否是进程可写文件

              [ -x file ]               测试文件file是否是进程可执行文件

              [ -L file ]               测试文件file是否符号化链接

 


目录
相关文章
|
2月前
|
安全 Linux 虚拟化
|
3天前
|
安全 Linux 测试技术
Intel Linux 内核测试套件-LKVS介绍 | 龙蜥大讲堂104期
《Intel Linux内核测试套件-LKVS介绍》(龙蜥大讲堂104期)主要介绍了LKVS的定义、使用方法、测试范围、典型案例及其优势。LKVS是轻量级、低耦合且高代码覆盖率的测试工具,涵盖20多个硬件和内核属性,已开源并集成到多个社区CICD系统中。课程详细讲解了如何使用LKVS进行CPU、电源管理和安全特性(如TDX、CET)的测试,并展示了其在实际应用中的价值。
|
1月前
|
Linux Shell 网络安全
Kali Linux系统Metasploit框架利用 HTA 文件进行渗透测试实验
本指南介绍如何利用 HTA 文件和 Metasploit 框架进行渗透测试。通过创建反向 shell、生成 HTA 文件、设置 HTTP 服务器和发送文件,最终实现对目标系统的控制。适用于教育目的,需合法授权。
71 9
Kali Linux系统Metasploit框架利用 HTA 文件进行渗透测试实验
|
1月前
|
人工智能 自然语言处理 前端开发
CodeArena:在线 LLM 编程竞技场!用于测试不同开源 LLM 的编程能力,实时更新排行榜
CodeArena 是一个在线平台,用于测试和比较不同大型语言模型(LLM)的编程能力。通过实时显示多个 LLM 的代码生成过程和结果,帮助开发者选择适合的 LLM,并推动 LLM 技术的发展。
62 7
CodeArena:在线 LLM 编程竞技场!用于测试不同开源 LLM 的编程能力,实时更新排行榜
|
1月前
|
安全 Ubuntu Linux
Metasploit Pro 4.22.6-2024111901 (Linux, Windows) - 专业渗透测试框架
Metasploit Pro 4.22.6-2024111901 (Linux, Windows) - 专业渗透测试框架
50 9
Metasploit Pro 4.22.6-2024111901 (Linux, Windows) - 专业渗透测试框架
|
1月前
|
存储 监控 Linux
嵌入式Linux系统编程 — 5.3 times、clock函数获取进程时间
在嵌入式Linux系统编程中,`times`和 `clock`函数是获取进程时间的两个重要工具。`times`函数提供了更详细的进程和子进程时间信息,而 `clock`函数则提供了更简单的处理器时间获取方法。根据具体需求选择合适的函数,可以更有效地进行性能分析和资源管理。通过本文的介绍,希望能帮助您更好地理解和使用这两个函数,提高嵌入式系统编程的效率和效果。
103 13
|
2月前
|
缓存 Ubuntu Linux
Linux环境下测试服务器的DDR5内存性能
通过使用 `memtester`和 `sysbench`等工具,可以有效地测试Linux环境下服务器的DDR5内存性能。这些工具不仅可以评估内存的读写速度,还可以检测内存中的潜在问题,帮助确保系统的稳定性和性能。通过合理配置和使用这些工具,系统管理员可以深入了解服务器内存的性能状况,为系统优化提供数据支持。
65 4
|
2月前
|
存储 Shell Linux
Linux 如何更改默认 Shell
Linux 如何更改默认 Shell
55 0
Linux 如何更改默认 Shell
|
2月前
|
数据库连接 Go 数据库
Go语言中的错误注入与防御编程。错误注入通过模拟网络故障、数据库错误等,测试系统稳定性
本文探讨了Go语言中的错误注入与防御编程。错误注入通过模拟网络故障、数据库错误等,测试系统稳定性;防御编程则强调在编码时考虑各种错误情况,确保程序健壮性。文章详细介绍了这两种技术在Go语言中的实现方法及其重要性,旨在提升软件质量和可靠性。
46 1
|
3月前
|
Web App开发 网络协议 Linux
linux命令总结(centos):shell常用命令汇总,平时用不到,用到就懵逼忘了,于是专门写了这篇论文,【便持续更新】
这篇文章是关于Linux命令的总结,涵盖了从基础操作到网络配置等多个方面的命令及其使用方法。
91 1
linux命令总结(centos):shell常用命令汇总,平时用不到,用到就懵逼忘了,于是专门写了这篇论文,【便持续更新】