Linux Bash 变量内容修改完整呈现

运维 系统运维
文章介绍了在Linux系统中对Bash环境变量的内容进行设置修改,实现特殊功能的方法。

我们知道两种对变量取胜的方法:echo $HOME echo ${HOME}在echo ${variable}的方法中,还可以对变量的内容进行修改,只要加上一些字符标志,后面再接着使用比对字符串,就可以修改变量的内容了。假设变量名为:vbird,并且内容为/home/vbird/testing/testing.x.sh

◆1、完整呈现vbird这个变量:

vbird="/home/vbird/testing/testing.x.sh"

echo ${vbird}

/home/vbird/testing/testing.x.sh

◆2、在vbird变量中,从最前面开始比对

若开头为 / ,则删除两个/之间的所有数据,即 /*/

echo ${vbird##/*/}

testing.x.sh ---------删除了/home/vbird/testing/

echo ${vbird#/*/}

vbird/testing/testing.x.sh ----------只删除了/home/而已

------在这两个例子中,变量名后面如果接了两个##,表示在##后面的字符串取“最长的”那一段;如果只有一个#,表示取“最小的”那一段。(自注:“最小的那一段“表示从左到右离***个字符最近并且和***个字符相同的字符之间的内容,最长则反之)

◆3、承上题,如果是从后面开始,删除/*呢?

echo ${vbird%%/*/}

/home/vbird/testing/testing.x.sh ---------都没有删除

echo ${vbird%%/*}

--------都被删除了

echo ${vbird%/*}

/home/vbird/testing --------只删除 /testing.x.sh部分

在这个例子中要特别注意,那个%比对的是“***面那个字符”的意思,所以***个当然不对,因为vbird这个变量的内容***面是h而不是/。至于%%/*则是删除“最长的那个/*”,当然就是全部,而%/*则是最短的那个。(自注:最短最长同上注,虽然%表示反向的比对,但需注意的是在${variable}中输入的时候仍 然按着从左到右的顺序,即与变量内容中的字符的顺序相同。如下例:

echo ${vbird%t*h}

/home/vbird/testing/tes ------t.ing.x.sh被删除了

如果是

echo ${vbird%h*t}

/home/vbird/testing/testing.x.sh ----则输出没有变化(因为比对都是与***个字符比,变量内容的***个字符为h,而命令中给出的***个字符为t,与真实的变量内容不符。)

◆4. 将vbird变量中的testing取代为TEST

echo ${vbird/testing/TEST}

/home/vbird/TEST/testing.x.sh

echo ${vbird//testing/TEST}

/home/vbird/TEST/TEST.x.sh

如果变量后面接的是/ 时,表示后面是进行"取代"的工作,而且仅取代“***个”,如果是//,则表示全部的字符串都取代。

【编辑推荐】

  1. Linux Bash命令关于程序调试详解 
  2. Linux Bash命令关于快捷键应用
  3. Linux Bash Shell系统的应用详解
  4. Linux Bash具体安装步骤及使用介绍
  5. Linux Bash命令查询相关事件详解
责任编辑:chenqingxiang 来源: 赛迪网
相关推荐

2023-03-22 18:33:05

Bash变量

2018-05-30 17:33:06

学习模式

2017-09-21 13:46:50

VXLANL3网络Overlay

2017-01-11 10:27:36

Linux终端自定义Bash

2023-07-12 14:13:03

BashLinux

2022-05-09 07:08:14

LinuxBashShell

2014-09-26 16:46:24

2018-12-24 09:15:51

BashLinux环境变量

2015-08-10 14:37:27

LinuxBash环境变量

2022-11-30 07:47:00

Bash脚本

2023-06-25 12:00:53

2010-06-23 16:35:50

Linux Bash

2010-06-23 17:37:14

Linux Bash

2010-06-23 15:36:23

Linux Bug B

2010-06-23 15:41:44

Linux Bash

2010-06-23 17:34:03

Linux Bash

2010-06-23 10:03:18

Linux Bash命

2018-08-03 08:40:01

LinuxBash

2010-06-23 17:29:07

Linux Bash

2010-06-23 16:31:10

Linux Bash
点赞
收藏

51CTO技术栈公众号