shell编程之引号以及字符串

目录

一:引号

1:概念

2:注意

3:例子

二: 字符串

1:获取长度

2:截取

3:替换单个

4:替换所有

5:删除


一:引号

1:概念

单引号:按原字符串输出

双引号:可以引用变量,拥有特殊含义的内容

拼接:连续获取变量

2:注意

如果有多个引号,连续的形成一对 引号中使用其他引号,其他引号做字符串使用

符号有默认显示的例如:# *等

符号有默认不显示的加\转义符改变他的默认不显示改为现实

3:例子

1:输出变量和默认显示的符号

#!/bin/sh
name=zs
age=18
echo '$name$age'
echo "$name$age"
echo "$name#$age"
echo "$name+$age"

 2:输出变量和不默认显示的符号

#!/bin/sh
name=xx
age=18
#会将nameis当成一个变量
echo "$nameis$age"
echo "$name is $age"
echo "${name}is$age"
echo "${name}is${age}"
echo "${name}${age}"
echo "$name '' $age"
echo "$name"$age""
echo "$name\"$age\""

 由上图可知以后在引用变量的时候最好把变量用{}阔起来,可以用空格来进行隔开变量和字符。

二: 字符串

1:获取长度

格式:

${#变量}

#!/bi/sh
str=abcdefg
echo ${#str}

 

 

2:截取

格式:

${变量:开始位置:长度}

注意:

${str::5}:从0获取5个

${str:0}:从0获取到末尾

#!/bi/sh
str=abcdefg
#获取长度
echo ${#str}
#从0开始获取到结束
echo ${str:0}
#从0开始获取6个
echo ${str:0:6}

 

 

3:替换单个

格式:

${变量/旧/新}

注意:从左向右替换第一个如果第一个不是即使后面有也不会替换)

#!/bi/sh
str=abcdefgabcdefg
str1=abc
str2=xyz
str3=def
echo $str
#将str2替换str1
echo ${str/$str1/$str2}
#将str3替换为str2
echo ${str/$str3/$str2}

 

 

4:替换所有

格式:

${变量//旧/新}(所有指的是字符串中出现的所有旧的)

注意:替换不会再原字符上进行修改,想要修改原字符串只能重新新赋值

#!/bi/sh
str=abcdefgabcdefg
str1=abc
str2=xyz
str3=def
echo $str
#将所有的str1替换为str2
echo ${str//$str1/$str2}
#将所有的str3替换为str2
echo ${str//$str3/$str2}
#输出str
echo $str

 

 

5:删除

   从头删除
        ${变量#表达式}:匹配第一个删除
        ${变量##表达式}:匹配最后一个删除

#!/bi/sh
str=abcdefgabcdabc
str1=abc
str2=efg
echo ${str#$str1}
echo ${str#$str2}
echo $str

   

 

从尾开始删除
        ${变量%表达式}:匹配第一个删除
        ${变量%%表达式}:匹配最后一个删除
    注意:从未开始删除,表达式还是从左向右去写
        删除不会再原字符上进行修改,想要修改原字符串只能重新赋值

#!/bi/sh
str=abcdefgabcdabc
str1=abc
str2=efg
echo ${str%$str1}
echo ${str%$str2}
echo $str
echo ${str%%$str1}
echo ${str%%$str2}
echo $str

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值