Shell 脚本学习笔记三:Shell字符串

your_name="Li Lei"         // 双引号字符串

str='this is a string'       // 单引号字符串

 

 

 

拼接字符串

 

    your_name="qinjx"

    greeting="hello, "$your_name" !"

    greeting_1="hello, ${your_name} !"

    echo $greeting $greeting_1

 

 

 

获取字符串长度

 

    string="abcd"

    echo ${#string}

 

 

提取子字符串

 

    string="runoob is a great site"

    echo ${string:1:4}              // 截取下标为 1,长度为 4 的字符串

 

 

几种截取字符串的方法:

 

    var="http://www.baidu.com/123.html"

 

    1、# 截取,删除左边的字符,保留右边的字符

 

        // 删除 // 和 //左边的字符串(注:从左往右删除到第一个 //),即删除 http://

        echo ${var#*//}

        

    2、## 截取,删除左边的字符,保留右边的字符

        

        // 删除 / 和 /左边的字符串(注:从左往右删除到最后一个 /),即删除 http://www.baidu.com/

        echo ${var##*/}

            

    3、% 截取,删除右边的字符,保留左边的字符

        

        // 删除 / 和 /右边的字符串(注:从右往左删除到第一个(最右边) /),取删除 /123.html

        echo ${var%/*}

                    

    4、%% 截取,删除右边的字符,保留左边的字符

                

        // 删除 / 和 /右边的字符串(注:从右往左删除到最后一个(最左边) /),取删除 //www.baidu.com/123.html

        echo ${var%%/*}

                    

    5、: : 下标 长度截取

        

        // 删除下标为 1,长度为 3 的字符串

        echo {var:1:3}

                    

        // 从右往左数(最后一位为第0个字符),从第7个字符(不包括第7个)从左往右开始删除长度为3的字符串

        echo {var:0-7:3}

                    

    6、: 下标截取

        

        // 从 下标为 7 的位置开始删除,一直到结束

        echo {var:7}

                    

        // 从右往左数(最后一位为第0个字符),从左往右删除第7个字符(不包括第7个)后面的字符串

        echo {var:0-7}

 

查找子字符串

 

    string="runoob is a great company"

    echo `expr index "$string" is`  // 找到 is 的位置

 

posted @ 2017-06-23 10:00  小小聪明屋  阅读(325)  评论(0编辑  收藏  举报