- 获取字符串长度:${#string} || expr length $string
- 获取字符串索引位置:expr index "$string" substr
- 获取子串长度方法: expr match "$string" substr
- 抽取字符串中的子串: ${string:postition} \ ${string:position:length} \ ${string:-position} \ expr substr $string $position
-
例子需求描述
-
变量string="Bigdata process framework is Hadoop,Hadoop is an open source project"
- 打印string长度
- 删除字符串中所有的Hadoop
- 替换第一个Hadoop为mapreduce
- 替换全部的Hadoop为mapreduce
- 用户输入数字1|2|3|4,可执行对应的功能,输入q|Q可退出交互模式
!# /bin/bash/
string="Bigdata process framework is Hadoop,Hadoop is an open source project"
function print_tips
{
echo "********************"
echo "打印string长度"
echo "删除字符串中所有Hadoop"
echo "替换第一个Hadoop为mapreduce"
echo "替换所有的Hadoop为mapreduce"
echo"*********************"
}
function len_of_string
{
echo"${#string}"
}
function del_hadoop
{
echo "${string//Hadoop/}"
}
function rep_hadoop_mapreduce_first
{
echo "${string/Hadoop/Mapreduce}"
}
function rep_hadoop_mapreduce_all
{
echo "${string//Hadoop/Mapreduce}"
}
while true
do
echo"[string=$string]"
echo
print_tips
read -p "pls input your choice(1|2|3|4|q|Q):" choice #read -p 是提示语
case $choice in
1)
len_of_string
;;
2)
del_hadoop
;;
3)
rep_hadoop_mapreduce_first
;;
4)
rep_hadoop_mapreduce_all
;;
q|Q)
exit
esca
done