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. Xcode DEBUG宏定义,debug和release模式的选择

    设置DEBUG, 使用宏定义: #if DEBUG NSLog(@"debug model"); #else //执行release模式的代码 #endif

  2. Telnet 模拟邮件发送过程

    Telnet 模拟邮件发送过程 windows要提前开启Telnet客户端的功能,再按照下面步骤完成邮件发送: 1.通过 cmd 进入命令窗口 2.连接要发送邮件的服务器:telnet smtp.al ...

  3. scss-函数

    在scss中除了可以定义变量,具有@extend和@mixins等特性之外,还自备了一系列的函数功能. scss本身带有大量的内置函数,具体可以参阅官网函数模块. 一.字符串函数 unquote($s ...

  4. less之旅

    在遇到less之前,一直和css交往,当less出现在我码农生涯的时候,被她给深深地吸引.从此,less成了自己码农生活里面的一房,css退居二房!那么,less到底有什么魅力让我如此迷上她呢? le ...

  5. Jquery插件网站持续添加。。。

    Look Fro Less,Do More www.jq22.com

  6. Centos7配置

    1.静态ip配置 1.1  cd  /etc/sysconfig/network-scripts/ 1.2 vim ifcfg-ens33 (可通过ls查看  一般为第一个) (网关DNS1可以通过V ...

  7. elasticsearch 多列 聚合(sql group by)

    文档数据格式 {"zone_id":"1","user_id":"100008","try_deliver_t ...

  8. 分布式文件系统比较出名的有HDFS  和 GFS

    分布式文件系统比较出名的有HDFS  和 GFS,其中HDFS比较简单一点.本文是一篇描述非常简洁易懂的漫画形式讲解HDFS的原理.比一般PPT要通俗易懂很多.不难得的学习资料. 1.三个部分: 客户 ...

  9. Ubuntu清理系统垃圾 命令

    请参考: 圾Ubuntu清理系统垃 Ubuntu 16.04提示boot分区空间不足解决办法

  10. how webpack Hot Module Replacement works

    https://medium.com/@rajaraodv/webpack-hot-module-replacement-hmr-e756a726a07