test :用于文件类型检查和变量比较

一.用途:

1.判断表达式

 

2.判断字符串

3.判断整数

4.判断文件

测试例子:

(1).test

[root@~_~ day5]# cat test.sh

#!/bin/bash

a=$1

b=$2

if test $a -eq $b

then

echo "a=b"

else

echo "a!=b"

fi

[root@~_~ day5]# sh test.sh 1 1

a=b

[root@~_~ day5]# sh test.sh 1 2

a!=b

---------------------------------------------

(2).[]

[root@~_~ day5]# cat test.sh

#!/bin/bash

a=$1

b=$2

[ $a = $b ] && echo "a=b" || echo "a!=b"

[root@~_~ day5]# sh test.sh 1 2

a!=b

[root@~_~ day5]# sh test.sh 1 1

a=b

-------------------------------------------------

(3).判断文件

[root@~_~ day5]# cat test2.sh

#!/bin/bash

[ -f "$0" ]&& echo "$0 is a file" || echo "$0 is not a file"

[root@~_~ day5]# sh test2.sh

test2.sh is a file

二.test,[] , [[]]用法比较

[]与test等价,均为shell得到内部命令,而[[]]是shell得到关键字,bash把双中括号中的表达式看作一个单独的元素,并返回一个退出状态码,故推荐用 [[]] 作为条件判断语句,不易出现逻辑错误。另外,[[]]还支持模式匹配和正则表达式

(1).语法比较

[[]]:  if [[ $a != 1 && $a != 2 ]]

[]:    if [ $a -ne 1] && [ $a != 2 ] 或者 if [ $a -ne 1 -a $a != 2 ]

(2). [[]] 支持模式匹配

[root@~_~ day5]# cat test4.sh

#!/bin/bash

[[ "abcd" == a*d ]]&& echo True || echo Flase

[ "abcd" == a*d ]&& echo True || echo Flase

[root@~_~ day5]# sh test4.sh

True

Flase

(3).[[]] 支持正则表达式

[root@~_~ day5]# cat test5.sh

[[ "hello" =~ ^h ]]&& echo Ture || echo False

[root@~_~ day5]# sh test5.sh

Ture

shell基础--test命令的使用的更多相关文章

  1. [shell基础]——find命令

    find命令选项 -name 按照文件名查找 -type 查找某一类型的文件(b 代表设备块:d 目录:c 字符设备文件:l 符号(软)链接文件:f 普通文件) -size 查找文件长度或者大小 -p ...

  2. [shell基础]——sed命令

    关于sed sed 是一种在线编辑器,它一次处理一行内容.处理时,把当前处理的行存储在临时缓冲区中,称为“模式空间”(pattern space),接着用sed命令处理缓冲区中的内容,处理完成后,把缓 ...

  3. [shell基础]——read命令

    read命令:在shell中主要用于读取输入.变量.文本 1. 接受标准输入(键盘)的输入,并将输入的数据赋值给设置的变量      [按回车键——表示输入完毕]      [若输入的数据多于设置的变 ...

  4. [shell基础]——echo命令

    echo命令:在shell中主要用于输出 1. -n     不换行的显示结果(默认是换行的) 2. -e " "  支持双引号中使用一些特殊字符 常用的特殊字符有 \a 发出警告 ...

  5. [shell基础]——sort命令

    sort命令 sort是按照ASCII码升序输出,且是从首字符依次向后比较的 常见选项      -c 测试文件是否已经被排序 -r  逆向排序      -n 按照数字数值大小排序 -t  指定分割 ...

  6. [shell基础]——uniq命令

    uniq命令常见选项      去除重复行      -u  显示不重复的行      -d  显示有重复的行      -c  打印每一行重复的次数 测试文本内容如下: # cat 4.txt 11 ...

  7. [shell基础]——cut命令

    cut命令常见选项

  8. shell基础--cat命令的使用

    一.cat的常用用法 1.总结 2.实验 (1).非交互式编辑 [root@~_~ day5]# cat > cattest.sh <<STOP > hello > ST ...

  9. Shell基础-Bash命令类型

    Bash命令大体可以分为两类: 第一类是可执行文件,例如ls等 第二类是Bash内建命令,常见echo,cd等 bash命令优先级表:1别名  由alias指定 2关键字 3函数  由function ...

随机推荐

  1. 啰里吧嗦式讲解java静态代理动态代理模式

    一.为啥写这个 文章写的比较啰嗦,有些东西可以不看,因为想看懂框架, 想了解SSH或者SSM框架的设计原理和设计思路, 又去重新看了一遍反射和注解, 然后看别人的博客说想要看懂框架得先看懂设计模式,于 ...

  2. JVM GC总结

    判断对象存活 引用计数算法 给对象中添加一个引用计数器,每当有一个地方引用它时,计数器就加1,引用失效时,计数器就减1:任何时刻计数器都为0的对象就是不可能再被使用的. 问题:无法解决对象之间的相互循 ...

  3. 插入sql返回主键id

    <insert id="insertSelective" parameterType="com.xxx.model.XDetail" useGenerat ...

  4. github 上如何直接预览仓库中的html,搭建自己的主页

    前言:最近在写vue+element ui 的一些demo,就在github上建了个仓库来管理,但是希望能直接在github上就能预览效果,所以才有了这篇文章.转载请注明出处:https://www. ...

  5. 实习小结(四)--- MyBatis Generator使用

    第一次听闻MyBatis Generator插件很是惊讶,已经有这么便捷方式的工具通过数据库表来自动生成实体类,映射文件,接口以及帮助类,而且可以通过自己写方法来增加中文注释,遂来学习一波.首先先建一 ...

  6. Effective C++ Placement new

    #include <iostream> #include <cstdlib> using namespace std; class Card { private: int m_ ...

  7. Code Signal_练习题_adjacentElementsProduct

    Given an array of integers, find the pair of adjacent elements that has the largest product and retu ...

  8. ios移动端禁止双指缩放功能

    在实际开发中,我们禁止缩放的实现方式: 1.meta设置: <meta name="viewport"  content="width=device-width,h ...

  9. 用CSS的方法如何让一个元素不可见?(面试题目)

    面试中看到这个问题,自己想的不全面,下面整理下,一起学习: 一.CSS元素隐藏 在CSS中,让元素隐藏(指屏幕范围内肉眼不可见)的方法很多,有的占据空间,有的不占据空间:有的可以响应点击,有的不能响应 ...

  10. 行动学习方法----PARR