当前位置 博文首页 > shell基础学习中的字符串操作、for循环语句示例

    shell基础学习中的字符串操作、for循环语句示例

    作者:admin 时间:2021-02-18 06:04

    复制代码 代码如下:

    #!/bin/bash
    my_name="jxq"

    echo $my_name
    echo ${my_name}

    # ------------------------------------
    # 字符串操作
    # ------------------------------------

    # 单引号字符串的限制,双引号没有这些限制:
    # 单引号里的任何字符都会原样输出,单引号字符串中的变量是无效的
    # 单引号字串中不能出现单引号(对单引号使用转义符后也不行)
    name="will"
    age=24
    my_full_name='${name}${age}'
    echo ${my_full_name}
    my_full_name="${name}${age}"
    echo ${my_full_name}

    # 字符串拼接
    echo ${name}${age}

    # 字符串长度
    echo ${#name} # 4

    # substring
    message="I want to be healthy"
    echo ${message:2} # want to be health, 2是position
    echo ${message:2:4} # want,2是position,4是len

    # delete shortest match from front: ${string#substring}
    echo ${message#*want}
    # delete shortest match from back: ${string%substring}
    echo ${message%healthy}

    # delete longest match from front: ${string##substring}
    echo ${message##*h}
    # delete longest match from back: ${string%%substring}
    echo ${message%%t*}

    # find and replace: ${string/pattern/replacement}
    book_name="Catch Eye Eye"
    echo ${book_name/Eye/Cat}
    # find and replace all match: ${string//pattern/replacement}
    echo ${book_name//Eye/Cat}

    file_path="/usr/local/bin"
    # only replace when pattern match the beginning: ${string/#pattern/replacement}
    echo ${file_path/#\/usr/tmp}
    # only replace when pattern match the end: ${string/%pattern/replacement}
    echo ${file_path/%bin/tmp}

    # string index
    stringZ=abcABC123ABCabc
    echo `expr index "$stringZ" C12` # Mac OSX不支持expr


    # ------------------------------------
    # 语句
    # ------------------------------------

    # if
    if true
    then
     echo "ok, true"
    fi

    # 写成一行
    if true; then echo "ok"; fi

    var='12'
    if [ $var -eq 12 ]; then
        echo "This is a numeric comparison if example"
    fi

    if [ "$var" = "12" ]; then
        echo "This is a string if comparison example"
    fi

    if [[ "$var" = *12* ]]; then
        echo "This is a string regular expression if comparison example"
    fi

    name="jxq"
    if [ "$name" = "jxq" ]; then
     echo "hello" $name
    fi


    # 循环语句
    for item in `ls *.sh`
    do
     echo $item
     echo "completed"
    done

    # 写成一行
    for item in `ls *.sh`; do echo $item; echo "completed"; done;

    counter=1
    while :
    do
     echo "bee"
     let "counter=$counter+1"
     if [ $counter -eq 3 ]; then
      break # break/continue与Java类似
     fi
    done

    # Case语句
    opt="install"
    case "${opt}" in
     "install" )
      echo "install..."
      exit

     
     "update" )
      echo "update..."
      exit

     
     *) echo "bad opt"
    esac

    js
    下一篇:没有了