当前位置: 首页 > news >正文

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

一、变量内容的增加(:)
可以使用:向一个变量中添加新的内容(一定要加上:号)
方式一:变量名=变量名:新内容方式二:变量名="变量名:新内容 方式二:变量名="变量名:新内容方式二:变量名="变量名":新内容
方式三:变量名=${变量名}:新内容

ckr@ubuntu:~$ name=123
ckr@ubuntu:~$ echo $name
123
ckr@ubuntu:~$ name=${name}123123  //修改
ckr@ubuntu:~$ echo $name
123123123
ckr@ubuntu:~$ name=${name}:qwe  //增加
ckr@ubuntu:~$ echo $name
123123123:qwe
ckr@ubuntu:~$ 

变量作用域原理: 在Shell中,使用name=0这种方式定义的变量是环境变量,其作用域默认是当前shell会话(session)。这种变量会一直存在,直到:
当前shell会话结束
使用unset命令显式删除
被新的赋值覆盖

三、变量内容的删除
格式

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

ckr@ubuntu:~$ name=/12/123/1234/12345/       //初始化
ckr@ubuntu:~$ echo $name
/12/123/1234/12345/
ckr@ubuntu:~$ ${name#/*/}
bash: 123/1234/12345/: No such file or directory
ckr@ubuntu:~$ echo ${name#/*/}              //删除左边最短的
123/1234/12345/
ckr@ubuntu:~$ 
ckr@ubuntu:~$ 
ckr@ubuntu:~$ echo ${name##/*/}ckr@ubuntu:~$ echo $name
/12/123/1234/12345/
ckr@ubuntu:~$ echo ${name##/*/}ckr@ubuntu:~$ echo $name.test.txt
/12/123/1234/12345/.test.txt
ckr@ubuntu:~$ echo ${name##/*/}ckr@ubuntu:~$ name=$name.test.txt
ckr@ubuntu:~$ echo ${name##/*/}    //删除左边最长的,/*/
.test.txt
ckr@ubuntu:~$ 

四、变量内容的替换
格式

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

ckr@ubuntu:~$ echo ${name}
/12/123/1234/12345/.test.txt
ckr@ubuntu:~$ echo ${name/123/abc}
/12/abc/1234/12345/.test.txt
ckr@ubuntu:~$ 
ckr@ubuntu:~$ echo ${name//123/ABC}
/12/ABC/ABC4/ABC45/.test.txt
ckr@ubuntu:~$
http://www.dtcms.com/a/596708.html

相关文章:

  • 【FPGA+DSP系列】——MATLAB simulink仿真三相桥式全控整流电路
  • es 书籍检索-下篇 - 内网部署工程
  • Vue3 高级性能优化
  • 含汞废水深度处理技术实践:Tulsimer® 树脂在聚氯乙烯行业的工程应用
  • 制作简单公司网站流程用帝国cms做的网站首页
  • Java 函数式编程 | 深入探讨其应用与优势
  • 福建整站优化企业车辆管理系统平台
  • 【多模态大模型面经】 Transformer 专题面经
  • 【微服务知识】SpringCloudGateway结合Sentinel实现服务的限流,熔断与降级
  • Python基础教学:Python中enumerate函数的使用方法-由Deepseek产生
  • 算法基础篇:(六)基础算法之双指针 —— 从暴力到高效的优化艺术
  • 家庭网络搭建网站做网站能赚钱吗 知乎
  • 江苏省住房与城乡建设厅网站首页广告网站建设报价
  • HarmonyOS状态管理精细化:控制渲染范围与变量拆分策略
  • win32k!ProcessKeyboardInputWorker函数和win32k!xxxProcessKeyEvent函数分析键盘扫描码和vk码
  • k均值,密度聚类,层次聚类三种聚类底层逻辑的区别
  • 基于微信小程序的茶叶茶具销售和管理系统(源码+论文+部署+安装)
  • INT303 Big Data Analysis 大数据分析 Pt.8 聚类
  • 4-ARM-PEG-Biotin(2)/Silane(2),特性与制备方法解析
  • 【成功案例】朗迪锋助力高校实验室数智化升级
  • 【开题答辩实录分享】以《证劵数据可视化分析项目设计与实现》为例进行答辩实录分享
  • 可信计算、TPM
  • SAP HANA 发展历史:内存计算如何重塑企业级数据平台
  • 存算一体架构在空间计算中的应用
  • docker swarm集群搭建,对比k8s
  • 为什么网站需要维护需要网站建设
  • 25年05月架构甄选范文“论多模型数据源”,软考高级,系统架构设计师论文
  • 重庆做网站公司哪家比较好图片设计在线
  • Ubuntu 上使用 VSCode 调试 C++ (CMake 项目) 指南
  • opencv 学习: 07 使用迭代器 (iterator) 遍历像素