网站首页 > 技术文章 正文
摘要:当前大多数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类似会出现这样结果。
猜你喜欢
- 2024-12-07 Shell sed命令详解
- 2024-12-07 Jmeter BeanShell循环:字符串 拼接模式,为变量名 获取数据值
- 2024-12-07 快速学习正则表达式,不用死记硬背,示例让你通透(下篇)
- 2024-12-07 shell——字符串操作
- 2024-12-07 SQL数据库类似正则表达式的字符处理问题
- 2024-12-07 一个“挖矿脚本”还能难得住我?
- 2024-12-07 shell——环境变量
- 2024-12-07 使用python自动化脚本执行shell命令,提前两小时下班(5)
- 2024-12-07 SQL中的正则表达式
- 2024-12-07 Linux入门-shell编程-适合小白
- 最近发表
- 标签列表
-
- cmd/c (90)
- c++中::是什么意思 (84)
- 标签用于 (71)
- 主键只能有一个吗 (77)
- c#console.writeline不显示 (95)
- pythoncase语句 (88)
- es6includes (74)
- sqlset (76)
- apt-getinstall-y (100)
- node_modules怎么生成 (87)
- chromepost (71)
- flexdirection (73)
- c++int转char (80)
- mysqlany_value (79)
- static函数和普通函数 (84)
- el-date-picker开始日期早于结束日期 (76)
- js判断是否是json字符串 (75)
- c语言min函数头文件 (77)
- asynccallback (87)
- localstorage.removeitem (74)
- vector线程安全吗 (70)
- java (73)
- js数组插入 (83)
- mac安装java (72)
- 无效的列索引 (74)