首页 > 系统相关 >Shell子串_变量子串的语法介绍

Shell子串_变量子串的语法介绍

时间:2023-10-09 17:44:06浏览次数:34  
标签:子串 Shell 变量 echo 语法 name2 root localhost name

变量子串的语法介绍
name="Mrxujbing"		#该变量的值,有索引是从0,1,2,3,4...
${变量}					返回变量值
${#name}				 返回变量长度
${变量:start}				返回变量start数值之后的字符串,且包含start的数字(start值就是索引值)
${变量:start:length}		提取start之后的length限制的字符,例如${name:4:1}
${变量#word}				从变量开头删除最短匹配的word子串
${变量##word}				从变量开头删除最长匹配的word子串
${变量%word}				从变量结尾删除最短匹配的word
${变量%%word}				从变量结尾开始删除最长匹配的word

替换
${变量/pattern/string}	用string 代替第一个匹配的pattern
${变量//pattern/string}	用string 代替所有匹配的pattern
[root@localhost ~]# name="Mrxu160abcbbcacd"
[root@localhost ~]# echo ${name}
Mrxu160abcbbcacd
[root@localhost ~]# echo ${#name}
16
[root@localhost ~]# echo ${name:6}
0abcbbcacd
[root@localhost ~]# echo ${name:6:3}
0ab

实际练习
###截取字符串
[root@localhost ~]# echo $name
xujianbing
[root@localhost ~]# echo ${name:3:3}
ian
[root@localhost ~]# name2="abcABCabc123ABCabc"
[root@localhost ~]# echo ${name2#a*c}
ABCabc123ABCabc
[root@localhost ~]# echo ${name2##a*c}  ###匹配最长的,就是全匹配,删晚了

[root@localhost ~]# echo ${name2%a*c}
abcABCabc123ABC
[root@localhost ~]# echo ${name2%%a*c}

[root@localhost ~]# 

###用符号#有点难理解,从开头匹配,重点是开头的字符要对应;从结尾开始匹配重点是结尾的要匹配
[root@localhost ~]# echo ${name2%1*c}        ###从结尾的
abcABCabc
[root@localhost ~]# echo ${name2#1*c}
abcABCabc123ABCabc
[root@localhost ~]# echo ${name2#a*3}       ###从开头的         
ABCabc                             
[root@localhost ~]# echo ${name2%a*3}

#####感觉直接用/替换成空更好理解
[root@localhost ~]# echo ${name2/ab/df}
dfcABCabc123ABCabc
[root@localhost ~]# echo ${name2//ab/df}
dfcABCdfc123ABCdfc
[root@localhost ~]# echo ${name2//abc/}   ###将要截取的替换成空
ABC123ABC
[root@localhost ~]# 

标签:子串,Shell,变量,echo,语法,name2,root,localhost,name
From: https://www.cnblogs.com/xjianbing/p/17752347.html

相关文章

  • 7、Python语法入门之流程控制
    7、Python语法入门之流程控制转载: 7、Python语法入门之流程控制-知乎(zhihu.com)目录:引子分支结构什么是分支结构为什么要用分支结构如何使用分支结构if语法if应用案例循环结构什么是循环结构为什么要用循环结构如何使用循环结构while循环语......
  • markdown语法
    推荐使用软件:typora#一级标题###二级标题#####三级标题###**加粗***斜体*~~删除线~~>引用别人的文章,用大于号就行---分割线***分割线图片                        ![截图]()               ......
  • 【2023年10月09日】STF61_LINUX_SHELL
     STF61_LINUX_SHELL(上午)1. 什么是shell?shell就是一个用C语言编写的程序,是用户使用linux的桥梁。shell既是一种命令语言,也是一种程序设计语言2. 什么是shellscript?利用shell的功能所写的一个“程序”,这个程序是使用纯文本文档,将一些shell的语法与命令写在命令。搭......
  • 【webapp】jsp EL 的基本语法和用法
    EL(表达式语言)是用于在JSP页面中访问和操作数据的简洁表达式语言。EL提供了一种简化和统一的方式来访问变量、属性、集合和其他对象。以下是EL的基本语法和用法:基本语法:${expression}:用于在JSP页面中嵌入EL表达式。${object.property}:访问对象的属性。${map.key}:访......
  • STF61_LINUX_SHELL(上午)
     STF61_LINUX_SHELL(上午)1. 什么是shell?shell就是一个用C语言编写的程序,是用户使用linux的桥梁。shell既是一种命令语言,也是一种程序设计语言2. 什么是shellscript?利用shell的功能所写的一个“程序”,这个程序是使用纯文本文档,将一些shell的语法与命令写在命令。搭......
  • Redis 基础语法
    Redis五种常见数据类型Redis存储的是key-value结构的数据,其中key是字符串类型,value有五种常见的数据类型:1.字符串string(普通字符串,Redis中最简单的数据类型)2.哈希hash(也叫散列,类似于java中的HashMap结构)3.列表list(按照插入顺序排序,可以有重复元素,类似于java中的LinkedLis......
  • shell脚本中的多行注释
     001、[root@pc1test01]#lsa.sh[root@pc1test01]#cata.sh##测试脚本#!/bin/bash:"##冒号和双引号之间有一个空格(也可以是单引号)xxxxxxxyyyyyyyyyyy##注释内容zzzzzzzz"((sum=8+9+......
  • Markdown语法
    Markdown语法标题#一级标题##二级标题###三级标题####四级标题#####五级标题######六级标题字体**粗体***斜体****斜粗体***~~删除线~~引用>分割线---图片![图片](本地地址网络地址都可以)超链接点击跳转[点击跳转](链接地址)有序列表-无顺......
  • 【Cucumber】关于BDD自然语言自动化测试的语法总结
    1、关键字-Feature每一个.feature文件必须以关键字Feature开始,Feature关键字之后可以添加该feature的描述,其作用类似于注释,仅仅为了便于理解沟通交流,描述内容中不可以包含Gherkin关键字,描述部分将不会被执行。2、关键字-Scenario一个feature可以包含多个Scenario,每一个Scen......
  • Markdown语法学习
    Markdown学习标题字体hello,worldhello,worldhello,wordhello,word引用狂神说列表abc12表格名字性别生日张三男1983.4.5代码hellopublic......