网站首页 > 博客文章 正文
摘要:当前大多数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脚本怎么写中文)
你 发表评论:
欢迎- 最近发表
-
- 给3D Slicer添加Python第三方插件库
- Python自动化——pytest常用插件详解
- Pycharm下安装MicroPython Tools插件(ESP32开发板)
- IntelliJ IDEA 2025.1.3 发布(idea 2020)
- IDEA+Continue插件+DeepSeek:开发者效率飙升的「三体组合」!
- Cursor:提升Python开发效率的必备IDE及插件安装指南
- 日本旅行时想借厕所、买香烟怎么办?便利商店里能解决大问题!
- 11天!日本史上最长黄金周来了!旅游万金句总结!
- 北川景子&DAIGO缘定1.11 召开记者会宣布结婚
- PIKO‘PPAP’ 洗脑歌登上美国告示牌
- 标签列表
-
- ifneq (61)
- 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)
本文暂时没有评论,来添加一个吧(●'◡'●)