0
点赞
收藏
分享

微信扫一扫

Linux变量内容的增加、删除、替换、测试取代


一、变量内容的增加(:)

方法


  • 可以使用:向一个变量中添加新的内容(一定要加上:号)


方式一:​变量名=$变量名:新内容​方式二:​变量名="$变量名":新内容​方式三:​变量名=${变量名}:新内容

  • 如果将:放在前面,则是在前面增加内容,不再举例

演示案例

  • 向name变量中添加内容

Linux变量内容的增加、删除、替换、测试取代_变量内容的增加

  • 在前面添加

Linux变量内容的增加、删除、替换、测试取代_替换_02

二、变量内容的修改

概念​:变量内容的修改与变量内容的增加不同。变量内容单独修改是修改原来变量,不会新增

方法


  • 方式一:​变量名="$变量名"新内容
  • 方式二:​变量名=${变量名}新内容

演示案例


  • name=dong,将name变量内容后面加上shao
  • 方法一:​name="$name"shao
  • 方法二:​name=${name}shao
  • 错误案例:​name=$nameshao  ==>此种方法是错误的,这种方法是将$nameshao变量赋值给name变量

Linux变量内容的增加、删除、替换、测试取代_删除_03Linux变量内容的增加、删除、替换、测试取代_删除_04

三、变量内容的删除

格式


  • 删除的方式有四种,不同的删除方式与#、##、%、%%有关
  • echo ​ ​${变量名#关键字} ​==>从最左边删除符合条件的最短关键字
  • echo ​ ​${变量名##关键字} ​==>从最左边删除符合条件的最长关键字
  • echo ​ ​${变量名%关键字} ​==>从最右边删除符合条件的最短关键字
  • echo ​ ​${变量名%%关键字} ​==>从最右边删除符合条件的最长关键字

注意事项

  • 变量内容的删除并不是真的删除内容,只是删除完之后显示出来。变量的内容没有发生变化

演示案例

  • 例如一个num变量的内容为/home/dong/desktop/1.txt

Linux变量内容的增加、删除、替换、测试取代_变量名_05

  • echo ​ ​${变量名#关键字} ​==>从最左边删除符合条件的最短关键字
echo ${num#/*/}

Linux变量内容的增加、删除、替换、测试取代_取代_06

  • echo ​ ​${变量名##关键字} ​==>从最左边删除符合条件的最长关键字
echo ${num##/*/}

Linux变量内容的增加、删除、替换、测试取代_变量名_07

  • echo ​ ​${变量名%关键字} ​==>从最右边删除符合条件的最短关键字
echo  ${num%/*}

Linux变量内容的增加、删除、替换、测试取代_变量名_08

  • echo ​ ​${变量名%%关键字} ​==>从最右边删除符合条件的最长关键字
echo  ${num%%/*}

Linux变量内容的增加、删除、替换、测试取代_删除_09

四、变量内容的替换

格式


  • 变量内容的替换与/的数量有关
  • echo  ${变量名/关键字/新字符串} ​==>从最左侧开始替换第一个符合条件的关键字
  • echo  ${变量名//关键字/新字符串} ​==>从最左侧开始替换所有符合条件的关键字

注意事项

  • 变量内容的替换并不是真的替换内容,只是替换完之后显示出来。变量的内容没有发生变化

演示案例

  • 例如一个name变量的内容为usr/bin/sbin/bin/usr

Linux变量内容的增加、删除、替换、测试取代_取代_10

  • echo  ${变量名/关键字/新字符串} ​==>从最左侧开始替换第一个符合条件的关键字
echo  ${name/bin/BIN}

Linux变量内容的增加、删除、替换、测试取代_替换_11

  • echo  ${变量名//关键字/新字符串} ​==>从最左侧开始替换所有符合条件的关键字
echo  ${name//bin/BIN}

Linux变量内容的增加、删除、替换、测试取代_变量内容的增加_12

五、变量内容的测试取代

格式


  • var和str为变量名,expr自己设定的值
  • 注意:使用echo查看变量内容时如果没有内容,该变量可能没有设置值或者为空字符串

变量设置的方式

str没有设置

str为空字符串

str已设置,且为非空字符串

var=${str-expr}

var=expr

var=空字符串

var=$str

var=${str:-expr}

var=expr

var=expr

var=$str

var=${str+expr}

var=空字符串

var=expr

var=expr

var=${str:+expr}

var=空字符串

var=空字符串

var=expr

var=${str=expr}


str=expr

var=expr



str不变

var=空字符串



str不变

var=$str


var=${str:=expr}


str=expr

var=expr



str=expr

var=expr



str不变

var=$str


var=${str?expr}

提示错误信息,将expr输出至stderr

var=空字符串

var=$str

var=${str:?expr}

提示错误信息,将expr输出至stderr

提示错误信息,将expr输出至stderr

var=$str

演示案例

  • var=${str-expr}​。先将str设置有内容,所以var=var

Linux变量内容的增加、删除、替换、测试取代_替换_13

  • var=${str-expr}​。先将str设置为空字符串,所以var=空

Linux变量内容的增加、删除、替换、测试取代_变量内容的增加_14

  • var=${str?"无此内容"}​。将str和var都unset释放掉,然后使用?

Linux变量内容的增加、删除、替换、测试取代_替换_15

  • 我是小董,V公众点击"笔记白嫖"解锁更多【Linux入门基础】资料内容。

Linux变量内容的增加、删除、替换、测试取代_删除_16


举报

相关推荐

0 条评论