• Linux 命令练习


    test 命令: (鸟哥linux私房菜视频第30集)

    test  -d : 判断一个文件是否为目录。

     eg: test -d passwd && echo "is a dir"|| echo "is not a dir"

    test  -f : 判断一个文件是否为普通文件。
     eg: test -f sh01.sh  && echo "is a  regular file" || echo "is not a regular file"

    test -e :判断一个文件是否存在。

     eg: test -e sh06.sh && echo "the file exits" || echo "the file does not exit"

     test -b: 判断一个文件是否为块设备文件。

    eg: test -b /dev/root && echo "is a block device" || echo "is not a block device"

     test -p: 判断一个文件是否为管道文件。

    eg:test -p /dev/log && echo "is a FIFO file" || echo "is not a fifo file"

     test -S: 判断一个文件是否为套接字文件。

    eg: test -S /dev/log && echo "is a socket file" || echo "is not a socket file"    

     test -s: 判断一个文件是否存在或文件大小是否大于0。

    eg: test -s sh06.sh && echo "exit or size > 0" || echo "not exit or size <=0"

     test -r/w/x + filename: 判断一个文件是否可读/写/执行。

     test -r sh01.sh  && echo "readable" ||echo "unreadable"

     test -u + filename: 判断一个文件是否设置了uid。

    test -u sh01.sh && echo "set uid"|| echo "have not set uid"

    test file1 -nt file2 : 判断file1 是否比file2 更新。

    test sh02.sh -nt sh01.sh && echo "newer" || echo "not newer"    

    test file1 -ot file2 :  判断file1 是否比file2 更旧。

     test sh01.sh -ot sh02.sh && echo "old" || echo "not old"

    test file1 -ef  file2 :  判断file2 是否为file2 的硬链接。

     eg: test sh01.sh  -ef sh01-hard && echo "hardlink" || echo "not hardlink"

     两个整数之间的判断:

    test   n1   -eq  n2

    -eq: 两数值相等。(equal)  

    -ne:两数值不等(not equal)  

    -gt:n1 大于n2(greater than)  

    -lt:n1 小于n2  (less than)  

    -ge:n1 大于等于n2 (greater than or equal  )  

    -le: n1小于等于n2  ( less than or equal  )  

     eg:

    qinshizhi@holadev-system:/mnt/workdir/qinshizhi$ n1=5
    qinshizhi@holadev-system:/mnt/workdir/qinshizhi$ n2=6
    qinshizhi@holadev-system:/mnt/workdir/qinshizhi$ test "$n1" -eq "$n2" && echo "equal" || echo "not equal"

    not equal

     判定字符串数据:

    test -z string  判定字符串是否为0?若string为空字符串,则为true 

    test -z string  判定字符串是否为非0?若string为空字符串,则为fasle,否则为ture。 -n可省略

     test  str1 str2  判定str1是否等于str2,若相等,则回传true(=两边需要空格)

     test  str1 !=  str2  判定str1是否不等于str2,若相等,则回传false

    eg:

    qinshizhi@holadev-system:/mnt/workdir/qinshizhi$ str=""
    qinshizhi@holadev-system:/mnt/workdir/qinshizhi$ test -z "$str" && echo "is null" || echo "is not null"
    is null
    qinshizhi@holadev-system:/mnt/workdir/qinshizhi$ test -n "$str" && echo "is not null" || echo "is null"
    is null
    qinshizhi@holadev-system:/mnt/workdir/qinshizhi$ test "$str" && echo "is not null" || echo "is null"
    is null
    qinshizhi@holadev-system:/mnt/workdir/qinshizhi$ str="abc"
    qinshizhi@holadev-system:/mnt/workdir/qinshizhi$ test "$str" && echo "is not null" || echo "is null"
    is not null
    qinshizhi@holadev-system:/mnt/workdir/qinshizhi$ test "$str" && echo "is not null" || echo "is null"
    is not null
    qinshizhi@holadev-system:/mnt/workdir/qinshizhi$ str1="avc"
    qinshizhi@holadev-system:/mnt/workdir/qinshizhi$ str1="abc"
    qinshizhi@holadev-system:/mnt/workdir/qinshizhi$ test "$str" = "$str1" && echo "equal" ||echo "not equal"
    equal
    qinshizhi@holadev-system:/mnt/workdir/qinshizhi$
    qinshizhi@holadev-system:/mnt/workdir/qinshizhi$
    qinshizhi@holadev-system:/mnt/workdir/qinshizhi$ ^C
    qinshizhi@holadev-system:/mnt/workdir/qinshizhi$ test "$str" = "$str1" && echo "equal" ||echo "not equal"
    equal
    qinshizhi@holadev-system:/mnt/workdir/qinshizhi$ test "$str" != "$str1" && echo "not equal" ||echo " equal"
    equal

    多重条件判定:例如: test  -r filename -a -x filename 

    eg:

    qinshizhi@holadev-system:/mnt/workdir/qinshizhi$ test -r sh01.sh -a -x sh01.sh && echo "readable and excutable" || echo "no"
    readable and excutable

    qinshizhi@holadev-system:/mnt/workdir/qinshizhi$ chmod 444 sh03.sh
    qinshizhi@holadev-system:/mnt/workdir/qinshizhi$ test -r sh03.sh -a -x sh03.sh && echo "readable and excutable" || echo "no"
    no

    qinshizhi@holadev-system:/mnt/workdir/qinshizhi$ test -r sh03.sh -o -x sh03.sh && echo "readable or excutable" || echo "no"
    readable or excutable

    qinshizhi@holadev-system:/mnt/workdir/qinshizhi$ test ! -x sh03.sh && echo "is not excutable" || echo "excutable"
    is not excutable
    qinshizhi@holadev-system:/mnt/workdir/qinshizhi$ test ! -r sh03.sh && echo "is not readable" || echo "readable"
    readable
    qinshizhi@holadev-system:/mnt/workdir/qinshizhi$ test ! -w sh03.sh && echo "is not writeable" || echo "writeable"
    is not writeable

  • 相关阅读:
    晨读,难道只是为了完成任务而读的吗?
    集合还有这么优雅的运算法?
    Java中的TreeSet集合会自动将元素升序排序
    CSS3的几个变形案例……
    “老师,请您多关注一下我吧!!!”
    jsp中使用cookie时报错……
    为什么要有周考?周考是用来干什么的?
    今天,我们就来抽个奖!
    今天 ,给大家变个魔术!!!
    Google Maps Api 多坐标分类标记,在地图上显示海量坐标,并分组显示。
  • 原文地址:https://www.cnblogs.com/qinshizhi/p/9548513.html
Copyright © 2020-2023  润新知