shell中的test用于检查某个条件是否成立,它可以进行数值、字符和文件三个方面的测试。

1. 数值测试

-eq 等于为true
-ne 不等,为true
-gt 大于,为true
-ge 大于等于,为true
-lt 小于,为true
-le 小于等于,为true

```
#shell
#!/bin/sh
a=3
b=5
if test $a -eq $b;then
echo "$a=$b"
else
echo "$a!=$b" #3!=5
fi
if test $a -gt $b;then
echo "$a>$b"
else
echo "$a$b"
fi
```

2. 字符串测试

= 等于,为true
!= 不等,为true
-z 字符串 字符串的长度为0,为true
-n 字符串 字符串的长度不为0,为true

```
#shell
#!/bin/sh
a="hello"
b="world"
if test $a = $b;then
echo "equal"
else
echo "not equal" not equal
fi
if test -z $a;then
echo "字符串长度为0"
else
echo "字符串长度不为0" #字符串长度不为0
fi
```
## 3. 文件测试

-e 文件名 如果文件存在,则为真
-r 文件名 如果文件存在且可读,则为真
-w 文件名 如果文件存在且可写,则为真
-x 文件名 如果文件存在且可执行,则为真
-s 文件名 如果文件存在且至少有1个字符,则为真
-d 文件名 如果文件存在且是目录则为真
-f 文件名 如果文件存在且为普通文件,则为真
-c 文件名 如果文件存在且为字符型特殊文件,则为真
-b 文件名 如果文件存在且为特殊文件,则为真

```
#shell
#!/bin/sh
if test -e land;then
echo "文件已存在"
else
touch land
echo "文件已创建" #文件已创建
fi
if test -r land;then
echo "文件存在且可读" #文件存在且可读
else
echo "文件不存在或文件不可读"
fi
```

4. 使用逻辑运算符 -a -o !

#shell
#!/bin/sh
if test -e land -o -e wind;then
echo "有一个存在" #有一个存在
else
echo "2个都不存在"
fi

shell 9test命令的更多相关文章

  1. linux 基础 shell脚本命令

    #########shell脚本命令#### 1.diff diff file file1 ####比较两个文件的不同 -c ####显示周围的行 -u ####按照一格式统一输出生成补丁 -r ## ...

  2. paip.执行shell cmd 命令uapi java php python总结

    paip.执行shell cmd 命令uapi java php python总结 作者Attilax  艾龙,  EMAIL:1466519819@qq.com 来源:attilax的专栏 地址:h ...

  3. (转)Hbase shell 常用命令(1)

    Hbase shell 常用命令(1) link:http://blog.csdn.net/scutshuxue/article/details/6988348 下面我们看看HBase Shell的一 ...

  4. Shell printf 命令

    Shell printf 命令 printf 命令模仿 C 程序库(library)里的 printf() 程序. 标准所定义,因此使用printf的脚本比使用echo移植性好. printf 使用引 ...

  5. Shell echo命令

    Shell echo命令 echo "It is a test" 这里的双引号完全可以省略 .显示变量 read 命令从标准输入中读取一行,并把输入行的每个字段的值指定给 shel ...

  6. 进入BIOS SHELL DUMP 命令

    LINUX系统 进入SHELL 输入命令 fs1: or fs0: 就进入了U盘目录 然后输入 ACPIRW.efi  -d -s dsdt.bat 就会产生结果到U盘 ——————————————— ...

  7. Linux Shell : Test命令参数解析

    格式: test conditions test -n string : string 不为空 test -z string : string 为空 test int1 -eq int2  : int ...

  8. shell解析命令行的过程以及eval命令

    本文说明的是一条linux命令在执行时大致要经过哪些过程?以及这些过程的大致顺序. 1.1 shell解析命令行 shell读取和执行命令时的大致操作过程如下图: 以执行以下命令为例: echo -e ...

  9. Shell和命令基础

    什么是Shell Shell是系统的用户界面,提供了用户与内核进行交互操作的一种接口(命令解析器),Shell接收用户输入的命令并把它送入到内核去执行,结构如下图 Shell的功能 Shell最重要的 ...

随机推荐

  1. DevExpress XtraScheduler日程管理控件应用实例(1)-- 基本使用

    在一些应用场景中,我们可能需要记录某一天,某个时段的日程安排,那么这个时候就需要引入了 DevExpress 的日程控件XtraScheduler 了,这个控件功能非常强大,提供了很好的界面展现方式, ...

  2. 数据库SQL优化大总结之 百万级数据库优化方案(转载)

    网上关于SQL优化的教程很多,但是比较杂乱.近日有空整理了一下,写出来跟大家分享一下,其中有错误和不足的地方,还请大家纠正补充. 这篇文章我花费了大量的时间查找资料.修改.排版,希望大家阅读之后,感觉 ...

  3. FDMemTable.Delta 转SQL语句脚本

    {*******************************************************} { } { XE7.XE8.XE10 安卓 IOS 框架 } { } { 版权所有 ...

  4. react 学习日记

    1.本地配置代理服务:   create-react-app 创建的react项目 package.jsoin 中 加入: "proxy": "http://localh ...

  5. QT 5.4.1 for Android Windows环境搭建

    QT 5.4.1 for Android Windows环境搭建 2015-5-13 目录 一.参考文章: 二.准备软件: 三.安装准备好的软件: 四.配置Qt 5.4.1 for Android 五 ...

  6. shell 脚本实战笔记(4)--linux磁盘分区重新挂载

    背景: Hadoop的HDFS文件系统的挂载, 默认指定的文件目录是/mnt/disk{N}. 当运维人员, 不小心把磁盘挂载于其他目录, 比如/mnt/data, /mnt/disk01, /mnt ...

  7. int类型转string类型c++

    前言 使用VS的过程中,经常会用到需要将int类型数据转换为字符串类型,便于显示信息等. 实现方法 c++11标准中的to_string函数,在VS安装文件的include文件中生成的只读文件,使用起 ...

  8. MyEclipse 2014 破解图文详细教程

    一.安装完成MyEclipse2014(适用于2013等版本)后,不要打开软件,下载破解附件包. 破解附件包下载地址:点我下载 二.解压破解文件压缩包,得到一下文件列表: 三.双击run.bat,即可 ...

  9. HDU1212 大数膜

    大数MOD #include<cstdio> #include<cstdlib> #include<iostream> #include<algorithm& ...

  10. unknown error: call function result missing 'value'

    好好的脚本全部报错,遇到这种现在看一下自己Chrome浏览的版本号 然后去chromedriver官网上下载最新驱动文件 https://sites.google.com/a/chromium.org ...