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

用vi或者vim打开它

#!/bin/bash
TEMP=abc.c
LENGHT=${#TEMP} #得到长度 5位
STR0=${TEMP:0:LENGHT-2} #得到abc
STR1=${TEMP:LENGHT-2} #得到.c
echo $STR0
echo $STR1

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

核心代码是
STR0=${TEMP:0:LENGHT-2} #得到abc
STR1=${TEMP:LENGHT-2} #得到.
规则如下:
${变量名:左边往右开始位置:长度}
那么,在计算这个的时候,要怎么计算呢?请看
${TEMP:0:LENGHT-2}
从左边第0位开始往右边取字符,取的字符长度是总长度-2,刚好减掉.c这两个字符。
${TEMP:LENGHT-2}
这个没写长度,意味着要取余下的所有,从左边往右边取,开始位置是,字符串总长度-2,后面的所有字符

事实上,${TEMP:LENGHT-2}也可以写成${TEMP:LENGHT-2:2}
长度为0,来试试看?

这只是比较严谨的写法。

如果你不会用#和%符号做分割的话,我建议还是用这种方法
编程语言BASH字符串SHELLUNIX版权声明:
1、本文系转载,版权归原作者所有,旨在传递信息,不代表看本站的观点和立场。
2、本站仅提供信息发布平台,不承担相关法律责任。
3、若侵犯您的版权或隐私,请联系本站管理员删除。
4、文章链接:http://www.1haoku.cn/art_878066.html
上一篇:作业帮如何设置桌面小组件
下一篇:快手怎么发说说文字?