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 的位置