• shell基础--test命令的使用


    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

  • 相关阅读:
    ubuntu下如何批量修改文件后缀名
    vanilla
    Ubuntu apt-get 彻底卸载软件包
    Kendall Rank(肯德尔等级)相关系数
    图像质量评估(IQA)
    conda常用命令
    在ubuntu中搜索文件或文件夹的方法
    libstdc++.so.6: version `GLIBCXX_3.4.21' not found
    迅雷磁力链接转BT种子工具
    springboot 集成mybatis plus3
  • 原文地址:https://www.cnblogs.com/ajilisiwei/p/6691224.html
Copyright © 2020-2023  润新知