广告合作
  • 今日头条

    今日头条

  • 百度一下

    百度一下,你就知道

  • 新浪网

    新浪网 - 提供新闻线索,重大新闻爆料

  • 搜狐

    搜狐

  • 豆瓣

    豆瓣

  • 百度贴吧

    百度贴吧——全球领先的中文社区

  • 首页 尚未审核订阅工具 订阅

    教你怎么用Shell分割字符串

    来源:网络收集  点击:  时间:2024-06-04
    【导读】:
    很多时候,我们想把一个字符串分割为两个域,恰巧又是用的是shell脚本,这时候该怎么办呢?我起初的目的是设计一个gcc自动编译的shell脚本,让它可以自动编译c源文件,并且,我希望的结果是,例如abc.c编译出来的可执行文件是abc,那么我们就需要做到一个字符串分割的作用,我们在参数abc.c传进来的时候,我们需要把它划分为abc和.c,.c是为了区分它是否是个c文件,abc是我们要输出的文件名。工具/原料more一台linux方法/步骤1/7分步阅读

    我们这里只做一个字符串的分割。

    首先touch新sh文件。

    2/7

    用vi或者vim打开它

    3/7

    #!/bin/bash

    TEMP=abc.c

    LENGHT=${#TEMP} #得到长度 5位

    STR0=${TEMP:0:LENGHT-2} #得到abc

    STR1=${TEMP:LENGHT-2} #得到.c

    echo $STR0

    echo $STR1

    4/7

    运行试试。可以看到,我们得到了abc和.c

    5/7

    核心代码是

    STR0=${TEMP:0:LENGHT-2} #得到abc

    STR1=${TEMP:LENGHT-2} #得到.

    规则如下:

    ${变量名:左边往右开始位置:长度}

    那么,在计算这个的时候,要怎么计算呢?请看

    ${TEMP:0:LENGHT-2}

    从左边第0位开始往右边取字符,取的字符长度是总长度-2,刚好减掉.c这两个字符。

    ${TEMP:LENGHT-2}

    这个没写长度,意味着要取余下的所有,从左边往右边取,开始位置是,字符串总长度-2,后面的所有字符

    6/7

    事实上,${TEMP:LENGHT-2}也可以写成${TEMP:LENGHT-2:2}

    长度为0,来试试看?

    7/7

    这只是比较严谨的写法。

    注意事项

    如果你不会用#和%符号做分割的话,我建议还是用这种方法

    编程语言BASH字符串SHELLUNIX
    本文关键词:

    版权声明:

    1、本文系转载,版权归原作者所有,旨在传递信息,不代表看本站的观点和立场。

    2、本站仅提供信息发布平台,不承担相关法律责任。

    3、若侵犯您的版权或隐私,请联系本站管理员删除。

    4、文章链接:http://www.1haoku.cn/art_878066.html

    相关资讯

    ©2019-2020 http://www.1haoku.cn/ 国ICP备20009186号05-06 17:19:19  耗时:0.024
    0.0236s