shell编程 之 test命令

shell编程里的测试test命令基本可以分为3种数据类型,每种都不一样。个人更倾向于理解为条件语句的写法规则,就是test加条件加判断语句。

1 数值类型

    基本可以分为6个判断:-eq等于,-ne不等于,-gt大于,-lt小于,-ge大于等于,-le小于等于

    实例:a=1;b=2

               if test $[a] -eq $[b]    #如果a等于b,那就...,-ne,-gt,,等等都可以,另外提一句,要是不是一个算式的话,可以不加方括号,$a + $b

               then

                   echo "a=b"    #缩进4个4个都行,习惯性缩进4个

               else

                   echo "a!=b"

    ps:算式有两种写法:$[a + b]和`expr $a + $b`

2 字符串

    有4个判断:= ,!= , -z (长度为0)和-n(长度不为0)

    实例:astr='hehehehe' ; bstr='hahahaha'

            if test $astr = $bstr

            then

                echo "astr = bstr"

             else

                echo "astr !=bstr"

             fi

3 文件测试

    基本上有9个常用的参数,基本格式是test + 参数 +文件名,参数分别是:

        -e:exists,存在这样的一个文件;

        -r:readable,文件是可读的;

        -w:writable,文件的可写的;

        -x:文件是可执行的,

        -s:存在且不为空

        -d:directory,存在目录

        -f:file,存在且为普通文件,

        -c:文件存在而且为字符型的特殊文件    #这个地方怎么理解呢,可以和ls命令中最前面的一个字符相关联:‘-’表示文件。d则表示目录,l表示连接文件,b表示设备文件里面的可供存储的接口设备,c表示设备文件里面的串行端口设置。https://zhidao.baidu.com/question/1820545103813500748.htm  

          实例:

                cd /etc

                if test -f /etc/passwd        #此处可以结合与或非逻辑语句:形如 if test -e ./notFile -o -e ./bash 表示存在./notFile 或者./bash

                then 

                     echo "yes"

        else 

           echo "no"

        fi

 

 

                   

转载于:https://www.cnblogs.com/0-lingdu/p/9260572.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/452126.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

HTTP 协议知识点总结(一)

在许多大公司的面试中,经常会重点考察面试者的计算机基础知识。所以对于在计算机网络、数据结构、操作系统上花费更多的时间和精力,是完全值得的。HTTP 作为应用最为广泛的网络协议,不论前端和后端都需要经常接触。最近决定对 HTTP 进行了一些…

阶乘的精确值 大数问题

输入不超过1000的正整数n,输出n的阶乘的精确结果 样例输入:30 样例输出:265252859812191058636308480000000 分析: 为了保存结果,需要分析1000!有多大。用计算器算一算不难知道,1000&#x…

Diango博客--22.Django Haystack 全文检索与关键词高亮

文章目录1. Django Haystack 简介2. 安装 django-haystack和elasticsearch 23. 构建容器来运行 elasticsearch 服务4. 配置 Haystack5. 处理数据6. 配置 URL7. 修改搜索表单8. 创建搜索结果页面9. 高亮关键词10. 建立索引文件11. 修改搜索引擎为中文分词12. 防止标题被截断13. …

Vim和Vi的常用命令

Vim 文本编辑器 1、Vim 和 Vi: 两者都是多模式编辑器; Vim 是 Vi 升级版,再兼容 Vi 所有指令的同时增加了一些新功能支持; 特点: 语法加亮:使用不同的颜色加亮代码; 多级撤销:Vi 只能撤销一次操…

oracle中 sql语句:start with .. connect by prior.. 用法

前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家。点击跳转到教程。 我们经常会将一个比较复杂的目录树存储到一个表中。或者将一些部门存储到一个表中,而这些部门互相有隶属关系。这个时候你就…

多重继承和单重继承

多重继承(Multiple Inheritance, MI)指的是一个类别可以同时从多于一个父类继承行为与特征的功能。与单一继承相对,单一继承指一个类别只可以继承自一个父类。

3分钟学会SVN:SVN快速上手

选择SVN客户端 Windows平台 TortoiseSVN:也叫乌龟SVN,Windows上最流行的SVN客户端,安装后你的右键就会多了几个SVN相关的菜单,非常方便Eclipse插件:在Eclipse中集成SVN插件,适合使用Eclipse开发的用户&…

flask框架(三):flask配置文件

flask中的配置文件是一个flask.config.Config对象(继承字典),默认配置为:{DEBUG: get_debug_flag(defaultFalse), 是否开启Debug模式TESTING: False, …

C语言可变参数全解

cstdarg(stdarg.h)可变参数的处理 这个头文件定义了一些宏,可以通过这些宏来逐个访问被调函数的没有名字的参数列表,这些参数的个数 和类型都是不知道的。 一个函数可以通过包含一个逗号和三个点(,...)接收可变数量的额外参数,而不需…

Diango博客--23.单元测试:测试 blog 应用

文章目录1. 前言2. 搭建测试环境3. 测试模型4. 测试视图5. 测试模板标签6. 测试辅助方法和类1. 前言 我们博客功能越来越来完善了,但这也带来了一个问题,我们不敢轻易地修改已有功能的代码了! 我们怎么知道代码修改后带来了预期的效果&…

一般与特殊结构关系 整体与部分结构关系

一般与特殊结构关系又称为分类结构关系,是“is a”关系。 例如:飞机与交通工具都是类,飞机是一种特殊的交通工具。他们之间是“is a”关系。 上层类体现一般性和共性,下层类体现特殊性和具体性。 用这种结构关系来描述现实世界…

简单版:带干扰线的图形验证码生成

前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家。点击跳转到教程。 1.生成工具类; import java.awt.Color; import java.awt.Font; import java.awt.Graphics; import java.awt.image.BufferedImage; im…

图片格式转换工具与方法

2019独角兽企业重金招聘Python工程师标准>>> 使用ffmpeg进行格式转换 1.jpg 转 I420 ffmpeg -i 001.jpg -pix_fmt yuv420p 001_I420_fromJPG.yuv 2.png 转 I420 ffmpeg -i 222.png -pix_fmt yuv420p 222_I420_fromPNG.yuv 3.bmp 转 I420 ffmpeg -i xxx.bmp -pix_fmt…

Diango博客--24.单元测试:测试评论应用

文章目录1. 前言2. 数据基类3.测试 Comment Model4. 测试视图函数5. 测试模板标签1. 前言 comments应用的测试和blog应用测试的套路是一样的。 先来建立测试文件的目录结构。首先在 comments 应用的目录下建立一个名为 tests 的 Python 包,然后删除 comments 应用…

面向对象设计使用语言选择

面向对象设计的结果既可以用面向对象语言、也可以用非面向对象语言实现。 使用面向对象语言时,由于语言本身充分支持面向对象概念的实现,因此,编译程序可以自动把面向对象概念映射到目标程序中。 使用非面向对象语言编写面向对象程序&#xf…

结合shiro 的图形验证码生成

前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家。点击跳转到教程。 在做用户登录功能时,很多时候都需要验证码支持,验证码的目的是为了防止机器人模拟真实用户登录而恶意访问&#…

利用C语言实现计算机图像处理的方法

1.图像平移 图像平移只是改变图像在屏幕上的位置,图像本身并不发生变化。假设原图像区域左上角坐标为(x0, y0),右下角坐标为(x1, y1),将图像分别沿x和y轴平移dx和dy,则新图像的左上角坐标为(x0 + dx, y0 &a…

E24- please install the following Perl modules before executing ./mysql_install_db

2019独角兽企业重金招聘Python工程师标准>>> [roott-cet7 scripts]# ./mysql_install_db --basedir/usr/local/mysql/ --datadir/app/data/ --usermysql FATAL ERROR: please install the following Perl modules before executing ./mysql_install_db: Data::Dumpe…

SpringMVC异常报406 (Not Acceptable)的解决办法

使用SpsringMVC&#xff0c;使用restEasy调试&#xff0c;controller请求设置如下&#xff1a; Java代码 RequestMapping(value"/list",methodRequestMethod.GET,producesMediaType.APPLICATION_JSON_VALUE) ResponseBody public List<EditTimeout> list()…