shell条件测试可以通过以下两种方式:

test   参数    测试内容

[ 参数  测试内容 ]

一、测试文件类型:

test  -e   文件名          (测试文件是否存在)

[ -e  文件名 ]                测试文件是否存在,注意中括号两边的空格

test -f   文件名             判断是否为普通文件

test -d   文件名            判断是否为目录

test -b   文件名            判断是否为块设备文件

test -c   文件名            判断是否为字符设备文件

二、测试文件权限:

test -r  文件名        判断文件是否又读权限

test -w  文件名       判断文件是否又写权限

test -x  文件名        判断文件是否有执行权限

test -s  文件名        判断文件是否为非空白,有内容为真

三、两个文件比较:

[ file1 -nt file2 ]     file1是否比file2更新

[ file1 -ot file2 ]     file1是否比file2旧

[ file1 -et file2 ]     fie1与file2是否是链接文件

四、两个数组之间判断:

[ n1 eq n2 ]       n1和n2是否相等

[ n1 ne n2 ]       n1和n2是否不等

[ n1 gt n2 ]       n1是否大于n2

[ n1 lt n2 ]        n1是否小于n2

[ n1 ge n2 ]       n1大于等于n2

[ n1 le n2 ]        n1小于等于n2

五、字符串判断:

[ -z  字符串 ]     判断字符串是否为空

[ 字符串1 == 字符串2]   判断字符串1是否等于字符串2

[ 字符串1 != 字符串2]   判断字符串1是否不等于字符串2

六、一个简单案例:

#!/bin/bash
read -p "please input a dir:" dir
if [ ! -e $dir ]
then
echo "filename is not exist"
exit
fi
if [ ! -d $dir ]
then
echo "please input a dir"
exit
fi
if [ -e $dir ]
then
for i in $(ls $dir)
do
echo $i
done
fi

shell条件测试test的更多相关文章

  1. shell条件测试语句实例-测试apache是否开启

    终于理解了shell条件测试语句"!="和"-n"的用法区别,于是有了如下的shell脚本,做为练习. 第一种方法:测试apache是否开启?字符串测试 #!/ ...

  2. 【第四章】Shell 条件测试表达式

    shell中条件测试的三种格式: 格式1: test 条件表达式格式2: [ 条件表达式 ]格式3: [[ 条件表达式 ]] 使用test: [root@host- ~]# test -f file ...

  3. 四 Shell条件测试

    条件测试操作 在bash的各种流程控制结构中通常要进行各种测试,然后根据测试结果执行不同的操作,有时也会通过与if等条件语句相结合,让我们可以方便的完成判断. 语法格式 test 选项 文件名或目录名 ...

  4. bash Shell条件测试

    3种测试命令: test EXPRESSION [ EXPRESSION ] [[ EXPRESSION ]]  注意:EXPRESSION前后必须有空白字符 bash的测试类型 数值测试: -eq: ...

  5. shell条件测试和流程控制

    一.条件测试操作 1.test 用途:测试特定的表达式是否成立,当条件成立时,命令执行后的返回值为0,否则为其他数值 格式:test 表达式 2.常见的测试类型 ①测试文件状态 格式:[ 操作符 文件 ...

  6. shell条件测试结构

    条件测试结构 if/then结构用来判断命令列表的退出状态码是否为0(因为在UNIX惯例, 0表示"成功"), 如果成功的话, 那么就执行接下来的一个或多个命令. 有一个专有命令[ ...

  7. shell条件测试

    文件状态测试-b filename : 当filename 存在并且是块文件时返回真(返回0)-c filename : 当filename 存在并且是字符文件时返回真-d pathname : 当p ...

  8. 《shell条件测试语句,字符串测试apache是否开启》

    还得我想了10分钟才明白”!=“和"-n"的用法区别,做个笔记捋一捋 第一种方法:测试apache是否开启?字符串测试 #!/bin/bash web=`/usr/bin/pgre ...

  9. Linux Shell 条件测试

    1. 文件测试 -d 目录 -s 文件非空 -f 是正规文件 -w 有写权限 -r 有读权限 -x 有执行权限 -L 符号连接 -u 文件有suid位设置

随机推荐

  1. 数据复制与AA双活(1)

    最开始有些概念需要弄明白: 1. 什么是RPO? Wiki: https://en.wikipedia.org/wiki/Recovery_point_objective A recovery poi ...

  2. 111. for(元素变量x:遍历对象obj)

    package com.chongrui.test;/* * for(元素变量x:遍历对象obj){ * 引用X的java语句 *  * } *  *  * */public class test { ...

  3. OSError: libcudart.so.7.5: cannot open shared object file: No such file or directory

    在ubuntu14.04-64-bit,安装完cuda ,cudnn.opencv后, 配置完MXNet,运行demo 时出现错误,库路径环境变量问题,解决方法: sudo ldconfig /usr ...

  4. ViewPager中Fragment切换过程不被销毁的方法

    背景:最近在写一个音乐播放器,然后一个ViewPager里面加载了四个Fragment,但是在切换过程中发现,Fragment总是被销毁,在网上查了一下,发现有两种办法可以保证Fragment不被销毁 ...

  5. git使用入门

    添加文件到git仓库 git add readme.txt git commit -m "write a readme file" 查询工作区状态 git status 查询修改内 ...

  6. Datazen笔记索引

      Datazen介绍 http://www.cnblogs.com/aspnetx/p/4557547.html   Datazen安装 http://www.cnblogs.com/aspnetx ...

  7. Oracle存储过程语法

    原文链接:http://www.jb51.net/article/31805.htm Oracle存储过程基本语法 存储过程  1 CREATE OR REPLACE PROCEDURE 存储过程名  ...

  8. Drools API的使用学习

    Drools API的使用学习在 Drools 当中,规则的编译与运行要通过 Drools 提供的各种 API 来实现,这些 API 总体来讲可以分为三类:规则编译.规则收集和规则的执行.完成这些工作 ...

  9. MR操作

    MR操作————Map.Partitioner.Shuffle.Combiners.Reduce 1.Map步骤 1.1 读取输入文件,解析成k-v对,其中每个k-v对调用一次map函数 1.2 写自 ...

  10. NHibernate开发入门

    首先,我们了解一下ORM是什么?ORM指对象关系映射(英语:Object Relational Mapping,简称ORM,或O/RM,或O/R mapping),是一种程序技术,用于实现面向对象编程 ...