网站首页 > 博客文章 正文
摘要:当前大多数Linux发行版的默认Shell是Bash。Shell相当于是一个翻译,Shell脚本是解释执行的,不需要编译,Shell程序从脚本中一行一行读取并执行这些命令,相当于一个用户把脚本中的命令一行一行敲到Shell提示符下执行。在做Shell批处理程序时候,经常会涉及到字符串相关操作。有很多命令语句,比如awk,sed都可以做字符串各种操作。 其实Shell内置一系列操作符号,也可以达到类似效果,而且使用内部操作符会省略启动外部程序等时间,因此速度会非常的快。
本文主要介绍Shell脚本语言的字符串操作方法,分别介绍字符串长度、字符串查找和字符串替换等知识,详细内容请参考下文。
一、判断读取字符串值
1.什么是字符串
定义:用双引号,单引号,或者直接在接在=后,都可以定义一个字符串,如下,定义了三个字符串。
比如:
(1)str1=string
(2)str2=’this is string’
(3)str3=”this is string”
备注:在Linux shell bash中,双引号和单引号的使用有区别。
单引号引用,则保留字符串的所有字符的字面含义,同时,单引号内不允许再出现单引号,也不会对转义字符等进行转义。
双引号引用,则支持一些扩展,如$(美元符) \ (反斜杠)。\$可以引用后面的变量值,\(反斜杠)表示转义。
2. 读取字符串值
说明:通过下列表达式读取字符串的值。
二、字符串操作
1. 字符串简单操作
说明:"substring”可以为正则表达式。
2.字符串的长度
说明:使用${#变量名}得到字符串长度
3.截取字符串
说明:${变量名:起始:长度}得到子字符串
4.字符串替换
说明:字符串替换, ${变量/查找/替换值} 一个“/”表示替换第一个,”//”表示替换所有,当查找中出现了:”/”请加转义符”\/”表示。
三、读取字符串操作的性能比较
说明:在Shell中,通过awk,sed,expr 等都可以实现,字符串上述操作,下面进行性能比较。
备注:速度相差上一百多倍,调用外部命令处理,与内置操作符性能相差非常大。在shell编程中,尽量用内置操作符或者函数完成。使用awk,sed类似会出现这样结果。
猜你喜欢
- 2025-02-04 无文件攻击:虚拟化安全如何做好针对性防护 (只做干货),关注交流
- 2025-02-04 shell编程(shell编程是干嘛的)
- 2025-02-04 关于PowershellMiner无文件挖矿病毒感染Windows系统的预警通报
- 2025-02-04 linux中内部变量,环境变量,用户变量的区别
- 2025-02-04 字节一面,操作系统这题没答好,可惜了
- 2025-02-04 有点意思的Shell特殊变量(shell 特殊变量)
- 2025-02-04 在Linux中,常见的shell有(linux中常用的shell命令有哪些)
- 2025-02-04 shell——函数介绍(shell function)
- 2025-02-04 C# Windows Api User32.dll窗体和消息动态库详解
- 2025-02-04 Shell脚本怎么写?(0)(shell脚本怎么写中文)
你 发表评论:
欢迎- 368℃用AI Agent治理微服务的复杂性问题|QCon
- 367℃手把手教程「JavaWeb」优雅的SpringMvc+Mybatis整合之路
- 359℃初次使用IntelliJ IDEA新建Maven项目
- 352℃Maven技术方案最全手册(mavena)
- 348℃安利Touch Bar 专属应用,让闲置的Touch Bar活跃起来!
- 347℃InfoQ 2024 年趋势报告:架构篇(infoq+2024+年趋势报告:架构篇分析)
- 345℃IntelliJ IDEA 2018版本和2022版本创建 Maven 项目对比
- 343℃从头搭建 IntelliJ IDEA 环境(intellij idea建包)
- 最近发表
- 标签列表
-
- powershellfor (55)
- messagesource (56)
- aspose.pdf破解版 (56)
- promise.race (63)
- 2019cad序列号和密钥激活码 (62)
- window.performance (66)
- qt删除文件夹 (72)
- mysqlcaching_sha2_password (64)
- ubuntu升级gcc (58)
- nacos启动失败 (64)
- ssh-add (70)
- jwt漏洞 (58)
- macos14下载 (58)
- yarnnode (62)
- abstractqueuedsynchronizer (64)
- source~/.bashrc没有那个文件或目录 (65)
- springboot整合activiti工作流 (70)
- jmeter插件下载 (61)
- 抓包分析 (60)
- idea创建mavenweb项目 (65)
- vue回到顶部 (57)
- qcombobox样式表 (68)
- vue数组concat (56)
- tomcatundertow (58)
- pastemac (61)
本文暂时没有评论,来添加一个吧(●'◡'●)