shell(3)-字符处理

2016年1月30日 0 条评论 1.62k 次阅读 0 人点赞

单引号

str='this is a string'

单引号字符串的限制:

  • 单引号里的任何字符都会原样输出,单引号字符串中的变量是无效的;
  • 单引号字串中不能出现单引号(对单引号使用转义符后也不行)。

双引号

your_name='sevenfal'
str="Hello, I know your are \"$your_name\"! \n"

双引号的优点:

  • 双引号里可以有变量
  • 双引号里可以出现转义字符

拼接字符串

your_name="sevenfal"
greeting="hello, "$your_name" !"
greeting_1="hello, ${your_name} !"

echo $greeting $greeting_1

获取字符串长度

string="abcd"
echo ${#string} #输出 4

提取子字符串

str="//www.sevenfal.com/2016/01/30/187.html"
echo ${#str} #输出 43
echo ${str:0:5} #0表示左边第一个字符开始,5表示字符的总个数,结果"http:"
echo ${str:1:4} #输出除左边第一个,向右取4个,结果"ttp:"
echo ${str:6} #输出除左边的6个,从第7个开始,结果"/www.sevenfal.com/2016/01/30/187.html"
echo ${str:0-12:10} #0-15:10为从右边开始的第2个,向左边取10个,结果"/30/187.ht"
echo ${str:0-21:10} #0-21:10为从右边开始第11个(没错,要删掉一个1,至于上百就没有试了),向左边取10个,结果"m/2016/01/"
echo ${str:0-5} #0-5为从右边开始取五个,结果".html"
echo ${str#*//} #删除从左边开始到第一个"//"及其左边所有字符,结果"www.sevenfal.com/2016/01/30/187.html"
echo ${str##*/} #删除最后出现的"/"及其左边所有字符,结果"187.html"
echo ${str%/*} #删除从右边开始到第一个"/"及其右边所有字符,结果"//www.sevenfal.com/2016/01/30"
echo ${str%%/*} #删除从右边开始到最后一个"/"及其右边所有字符,结果"http:"

Sevenfal

这个人太懒什么东西都没留下

文章评论(0)