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. html.div

    使用div构造简单的信息图片 html: <!DOCTYPE html><html><head><meta charset="utf-8" ...

  2. chrome跨域访问

    这里设计到跨域访问的问题,如果非要在本地来访问,可以这是chrome的参数. 1.打开chrome快捷方式->属性 2.末尾添加: --args --disable-web-security 3 ...

  3. [移动端WEB] 移动端网站响应式布局之"rem",CSS3 rem使用方式

    (function(doc, win) { var docEl = doc.documentElement, resizeEvt = 'orientationchange' in window ? ' ...

  4. 转:JS判断值是否是数字(两种方法)

    JS判断值是否是数字   1.使用isNaN()函数 isNaN()的缺点就在于 null.空格以及空串会被按照0来处理 NaN: Not a Number /***判断是否是数字***/ 1 2 3 ...

  5. 【node】fs模块,文件和目录的操作

    检查文件是否存在,查询文件信息 fs.stat() fs.stat('./server.js', function (err, stat) { if (stat && stat.isF ...

  6. 多线程下载英文Google地图

    1. pom.xml文件 <?xml version="1.0" encoding="UTF-8"?> <project xmlns=&quo ...

  7. VMware与Hyper-V

    前段时间在Windows10上安装Hyper-V,使用docker时,提示要卸载VMware 今天重新安装VMware时,提示: 根据连接进去:https://kb.vmware.com/s/arti ...

  8. Evernote Markdown Sublime使用介绍

    版权声明: 欢迎转载,但请保留文章原始出处 作者:GavinCT 出处:http://www.cnblogs.com/ct2011/p/4002619.html 这一篇博客继续探讨:Evernote ...

  9. 一次存储链路抖动因I/O timeout不同在AIX和HPUX上的不同表现(转)

    去年一个故障案例经过时间的沉淀问题没在发生今天有时间简单的总结一下,当时正时午睡时分,突然告警4库8个实例同时不可用,这么大面积的故障多数是有共性的关连,当时查看数据库DB ALERT日志都是I/O错 ...

  10. 将jsonModel转化为文件

    将jsonModel转化为文件 这个类是我自己写着用的,用于将字典文件直接转换成Model的文件,省去你写无数Model中属性的代码: TransformDictionary.h 与 Transfor ...