shell脚本(一)之变量

变量替换

	${变量名#匹配规则}             从头开始匹配最短删除
	${变量名##匹配规则}            从头开始匹配最长删除
	${变量名%匹配规则}     		   从尾部开始匹配最短删除
	${变量名%%匹配规则}    		   从尾部开始匹配最长删除
# #/##/%/%%
python@DESKTOP-TTOA9MS:~$ var1='l love you,Do you love me?'
python@DESKTOP-TTOA9MS:~$ echo $var1
l love you,Do you love me?
python@DESKTOP-TTOA9MS:~$ var2=${var1#*ov}
python@DESKTOP-TTOA9MS:~$ echo $var2
e you,Do you love me?
python@DESKTOP-TTOA9MS:~$ var3=${var1##*ov}
python@DESKTOP-TTOA9MS:~$ echo $var3
e me?
python@DESKTOP-TTOA9MS:~$ var4=${var1%ov*}
python@DESKTOP-TTOA9MS:~$ echo $var4
l love you,Do you l
python@DESKTOP-TTOA9MS:~$ var5=${var1%%ov*}
python@DESKTOP-TTOA9MS:~$ echo $var5
l l
${变量名/旧字符串/新字符串}        第一个旧被新取代
${变量名//旧字符串/新字符串}       全部新被旧取代
# 第一个被新取代
python@DESKTOP-TTOA9MS:~$ var5='/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games'
python@DESKTOP-TTOA9MS:~$ echo $var5
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games
python@DESKTOP-TTOA9MS:~$ var6=${var5/bin/BIN}
python@DESKTOP-TTOA9MS:~$ echo $var6
/usr/local/sBIN:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games

# 全部被新取代
python@DESKTOP-TTOA9MS:~$ echo $var5
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games
python@DESKTOP-TTOA9MS:~$ var6=${var5//bin/BIN}
python@DESKTOP-TTOA9MS:~$ echo $var6
/usr/local/sBIN:/usr/local/BIN:/usr/sBIN:/usr/BIN:/sBIN:/BIN:/usr/games

字符串处理

计算字符串长度
${#string}
expr length "$string"
# 方法一
python@DESKTOP-TTOA9MS:~$ var1="hello world"
python@DESKTOP-TTOA9MS:~$ len=${#var1}
python@DESKTOP-TTOA9MS:~$ echo $len
11
# 方法二
python@DESKTOP-TTOA9MS:~$ var1="hello world"
python@DESKTOP-TTOA9MS:~$ len=`expr length "$var1"`
python@DESKTOP-TTOA9MS:~$ echo $len
11
获取字符索引位置
expr index "$string" sub_str
python@DESKTOP-TTOA9MS:~$ var1="quickstart is a app"
python@DESKTOP-TTOA9MS:~$ idn=`expr index "$var1" start`
python@DESKTOP-TTOA9MS:~$ echo $idn
6
抽取字符串中的子串
sub_str=${string:position}        ----此时索引的下标从0开始
sub_str=${string:position:length}    ----从哪个下标开始提取长度多少的字符
sub_str=`expr substr "$string" index length`
# sub_str=${string:position} 
python@DESKTOP-TTOA9MS:~$ var1="python java c++"
python@DESKTOP-TTOA9MS:~$ var2=${var1:3}
python@DESKTOP-TTOA9MS:~$ echo $var2
hon java c++

# sub_str=${string:position:length}
python@DESKTOP-TTOA9MS:~$ var1="java python haddop"
python@DESKTOP-TTOA9MS:~$ var2=${var1:5:6}
python@DESKTOP-TTOA9MS:~$ echo $var2
python

# sub_str=`expr substr "$string" index length`
python@DESKTOP-TTOA9MS:~$ var1="java python"
python@DESKTOP-TTOA9MS:~$ var2=`expr substr "$var1" 7 2`
python@DESKTOP-TTOA9MS:~$ echo $var2
yt
要求:
		string="bigdata process framework is Hadoop,Hadoop is an open source project"
		将上面的字符串,
		(1)打印长度
		  (2)   将第一个Hadoop删除
		  (3)   将第一个Hadoop替换成Mapreduce
		  (4)   将所有的Hadoop替换成Mapreduce	
#! /bin/bash

string="bigdata process framework is Hadoop,Hadoop is an open source project"

function print_tips
{
        echo "***********************"
        echo "(1) 打印string长度"
        echo "(2) 删除字符串中所有的Hadoop"
        echo "(3) 替换第一个Hadoop为Mapreduce"
        echo "(4) 替换所有的Hadoop为Mapreduce"
        echo "***********************"
}

function print_length
{
        echo "${#string}"
}

function del_first_Hadoop
{
        echo "${string//Hadoop/}"
}

function rep_first_Hadoop
{
        echo "${string/Hadoop/Mapreduce}"
}

function rep_all_Hadoop
{
        echo "${string//Hadoop/Mapreduce}"
}
print_tips
print_length
del_first_Hadoop
rep_first_Hadoop
rep_all_Hadoop
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值