zoukankan      html  css  js  c++  java
  • shell 9test命令

    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"    #3<=5
    fi
    if test $a -le $b;then
    	echo "$a<=$b"    #3<=5
    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
    
  • 相关阅读:
    POJ3164 Command Network
    UVa11401 Triangle Counting
    UVa11174 Stand in a Line
    UVa11806 Cheerleaders
    Uva11538 Chess Queen
    Bzoj3130 [Sdoi2013]费用流
    Bzoj3262 陌上花开
    模拟25A 题解
    模拟24 题解
    模拟23 题解
  • 原文地址:https://www.cnblogs.com/csj2018/p/9581184.html
Copyright © 2011-2022 走看看