当前位置 博文首页 > Shell if中的正则表达式使用详解

    Shell if中的正则表达式使用详解

    作者:admin 时间:2021-07-08 18:47

    由于工作需要对用户提交的数据进行验证,这是一个简单的日期正则验证实例,有需要了解的同学可参考。

    shell中的if语句需要做一个正则判断,查了一下语法记录之。

    DATEPATTERN="^[0-9]{4}-[0-9]{1,2}-[0-9]{1,2}$"
    if [[ "$STARTDATE" =~ $DATEPATTERN ]] && [[ $ENDDATE =~ $DATEPATTERN ]]; then :
    else
    echo "date format is invalid!"
    exit;
    fi

    常用的正则表达式

    if [[ "$file" =~ 'start' ]]
    或if [[ "$file" =~ "start" ]]

    例子:

    #!/usr/bin/ksh
    file="10start11.s"
    if [[ "$file" =~ "start" ]]
    then
    echo "success"
    else
    echo "failed"
    fi

    只有bash才支持[[

    ksh在test中应该不支持正则,用awk grep sed等工具实现吧

    flag=`echo $file |awk '/start/'`
    if [ "$flag" = "" ];then
    echo "success"
    else
    echo "failed"
    fi

    Bourne Shell 的 if 语句和大部分编程语言一样 - 检测条件是否真实,如果条件为真,shell 会执行这个 if 语句指定的代码块,如果条件为假,shell 就会跳过 if 代码块,继续执行之后的代码。

    if 语句的语法:

    if[判断条件]
    then
    command1
    command2
    ……..
    last_command
    fi
    jsjbwy
    下一篇:没有了