淇县网站设计公司,重庆cms建站模板,企业手机网站设计案例,物业公司排名2020最新排名上篇文章讲到字符串的截取可以用字符位置索引的方式#xff0c;即
从字符串第二个位置开始截取5个(索引值从0开始)
echo ${string:1:5}
我们还可以使用#*字符或%字符*的方式进行从左或从右的截取。
废话不多说#xff0c;直接上例子。
#!/bin/bash
str即
从字符串第二个位置开始截取5个(索引值从0开始)
echo ${string:1:5}
我们还可以使用#*字符或%字符*的方式进行从左或从右的截取。
废话不多说直接上例子。
#!/bin/bash
strhttps://mp.csdn.net/mp_blog/creationhttps://mp.csdn.net/mp_blog/creation
echo str : ${str}
echo str#*/ : ${str#*/}
echo str##*/ : ${str##*/}
echo str%/* : ${str%/*}
echo str%%/* : ${str%%/*}输出
str : https://mp.csdn.net/mp_blog/creationhttps://mp.csdn.net/mp_blog/creation
str#*/ : /mp.csdn.net/mp_blog/creationhttps://mp.csdn.net/mp_blog/creation
str##*/ : creation
str%/* : https://mp.csdn.net/mp_blog/creationhttps://mp.csdn.net/mp_blog
str%%/* : https:#*/ 就是从字符串左边开始删除到第一个/号结束输出结果就是保留未删除右边字符。
##*/ 就是从字符串左边开始删除到最后一个/号结束输出结果就是保留未删除右边字符。
%/* 就是从字符串右边开始删除到右起第一个/号结束输出结果就是保留未删除左边字符。
%%/* 就是从字符串右边开始删除到右起最后一个/号结束输出结果就是保留未删除左边字符。
#代表从左删除%代表从右删除这很好理解最易混淆在其中作怪的就是*的位置。
下面是*位置错误的例子结果是无变化
#!/bin/bash
strhttps://mp.csdn.net/mp_blog/creationhttps://mp.csdn.net/mp_blog/creation
#*位置用法错误输出不生效
echo str#/* : ${str#/*}
echo str##/* : ${str##/*}
echo str%*/ : ${str%*/}
echo str%%*/ : ${str%%*/}输出结果
str#/* : https://mp.csdn.net/mp_blog/creationhttps://mp.csdn.net/mp_blog/creation
str##/* : https://mp.csdn.net/mp_blog/creationhttps://mp.csdn.net/mp_blog/creation
str%*/ : https://mp.csdn.net/mp_blog/creationhttps://mp.csdn.net/mp_blog/creation
str%%*/ : https://mp.csdn.net/mp_blog/creationhttps://mp.csdn.net/mp_blog/creation我们可以看到#号出现时*在截取位置字符的右边不生效%号出现时*在截取位置字符的左边不生效。 我们可以这样理解*是截取时删除的内容从左删除时删除内容是符号的左边所以*在字符左边不可能说从左边第一个字符开始删除删除的是右边的内容 同理从右删除时删除的内容是从右第一个字符开始不可能删除的是左边的内容。