Shell程序中的特殊字符(二)

一文搞定Shell编程中的单引号、双引号、反引号和转义符的区别和使用 linux中常见的单引号,双引号等符号的区别和使用 阅读详情

目录

1.一般的通配符

(1)星号(*)

(2)问号(?)

(3)方括号([])

(4)感叹号(!)

(5)幂次方号(^)

(6)美元号($)

2.模式表达式

 (1)*模式表

(2)+模式表

(3)?模式表

(4)@模式表

(5)!模式表

3.引号

(1)双引号

(2)单引号

(3)倒引号

4.其他特殊的字符

 

(1)输入重定向符

(2)输出重定向符

(3)管道线


Linux下Shell编程(一)

1.一般的通配符

(1)星号(*)

匹配任意字符0次或者多次,,例如a*表示以字符a开头,后面匹配任意的字符数(但是文件名前面的原点“.”和路径名中的斜线“/”必须显示匹配)。

查找以a字符开头的.sh文件。

(2)问号(?)

匹配任意一个字符,如a?,表示匹配以字符a开头,并且后面只跟一个字符的文件。

(3)方括号([])

其中一个字符组,它匹配该字符组限定的任何一个字符。该字符组可以由直接给出的字符组成,也可以由表示限定范围的起始字符,终止字符及中间一个连字符组成:

例如:[a-z]表示匹配“a到z中的任意一个字符”,[abcdef]表示匹配"abcdef"中的任意一个字符。

(4)感叹号(!)

表示不在一对方括号中所列出的字符。如a[!1-9].sh表示以字符a开头,后面一个字符不是数字1-9中的一个数字的.sh文件名,只会匹配如af.sh,ah.sh等文件名;

(5)幂次方号(^)

只允许在一行的开始匹配字符串。

(6)美元号($)

只在行尾匹配字符串,它放在匹配单词的后面。

2.模式表达式

 (1)*模式表

匹配给定表示表中的“模式”的0次或者多次出现,各模式间以“|”分开,例如:

file*(.sh | .c)将匹配文件file,file.c,file.sh,file.c.c,file.sh.c等,但是不匹配file.o或者file.s.

(2)+模式表

匹配给定模式表中的“模式”1次或者多次,各模式之间使用“|”分开,例如:

file+(.sh | .c),匹配文件file.c,file.o,file.sh.c等,但是不匹配file。

(3)?模式表

匹配模式表中任何一种“模式”的0次或者1次出现,各模式之间使用“|”分开。例如:

file?(.sh | .c)只匹配file,file.c,file.sh文件,但是比配file.c.c,file.sh.c等。

(4)@模式表

仅仅匹配模式表给定的“模式”的一次出现,各模式之间使用“|”分开,例如:

file@(.sh | .c)表示匹配file.sh和file.c文件,但是不匹配file,file.c.c,file.c.sh等。

(5)!模式表

除给定模式表中的一个“模式”之外,它可以匹配其他任何东西。

3.引号

(1)双引号

双引号括起来的符号,除$,倒引号(`)和反斜杠(\)任然保留其特殊功能之外,其他字符均作为普通的字符对待。

  • $:表示变量替换,即用其后指定的变量的值来替换$和变量(这个在讲述第一个shell程序的时候已经细讲);
  • 倒引号:表示命令替换;
  • 反斜杠:后面的字符是这些中的字符时,反斜杠“\”才是转义字符,这些字符是:“$”,“`”,“‘’”,“\”或换行符(通过转义,表示\后面的字符进行特殊的处理)。

  

(2)单引号

由单引号括起来的都是普通字符串。

 

(3)倒引号

倒引号括起来的字符串被shell解释为命令,在执行时,shell会先执行该命令行,并以它的标准输出结果取代整个倒引号部分。

4.其他特殊的字符

 

(1)输入重定向符

输入重定向符"<"的作用是把命令(或者可执行程序)的标准输入重新定向到指定文件。 

 

(2)输出重定向符

输出重定向符“>”的作用是把命令(或者可执行程序)的标准输出到重定向到指定文件。

创建a.txt文件:sudo touch a.txt

赋予权限:sudo chmod 777 a.txt

重定向:ls > a.txt(将命令ls的标准输出重定向到文件a.txt中)

查看文件内容:cat a.txt 

 

(3)管道线

管道线由“|”隔开若干个命令组成的序列。在管道线中,每一个命令执行时都有一个独立的进程,前一个命令的输出正是下一个命令的输入。

例如:将查看文件a.txt的内容,作为输入使用grep 搜索字符“i”出现的情况。

 

Shell 变量 在 Shell 中,用括号来表示数组,数组元素用"空格"符号分割开。定义数组的一般形式为:数组名=(值1 值2 ... 值n)例如:或者value0value1value2value3还可以单独定义数组的各个分量:可以不使用连续的下标,而且下标的范围没有限制。 阅读详情

相关推荐

RK3568-Linux-麒麟系统---更新制作麒麟rootfs

RK3568 Linux系统 麒麟国产麒麟镜像

qiuzw2003的博客 5360

shell脚本--转义和引用

shell编程基础(学习shell脚本笔记) 转义和引用 文章目录shell编程基础(学习shell脚本笔记)转义和引用1.转义2.引用(1).部分引用(2).全引用3.命令替换 1.转义 ​ 转义是指使用转义符引用单个字符,从而使其表达单纯的字符的字面含义。 shell中的转义符为"\\". #试图打印“$Dollar”字符串的错误演示 [root@localhost ~]# echo $Dollar ---> 此处打印为空,因为Shell尝试打印出变

zhanjun520的博客 2万+

从零搭建Simulink-Adams联合仿真平台:实现电机转速的精准闭环控制

本文详细介绍了从零搭建Simulink-Adams联合仿真平台的完整流程,旨在实现电机转速的精准闭环控制。通过将Simulink的控制算法与Adams的物理模型相结合,构建了一个包含真实机械效应的数字孪生系统。文章涵盖了Adams物理模型构建、接口定义、Simulink控制闭环搭建、PID参数调试以及常见避坑指南,为机电系统仿真提供了实用的工程实践指导。

weixin_29189373的博客 153

Shell脚本的特殊变量和特殊符号应用

记录:428 场景:Shell脚本中常用特殊符号,=,$,${},$0,$n,$#,$*,$@,$?,$$,(( )),[[ ]],$[],|,>>,>,

zhangbeizhen18的博客 1752

计算机三级考试嵌入式系统重点精简汇总

第一章 嵌入式系统概论 1.1.1嵌入式系统 (1)特点:(1)专用性;(2)隐蔽性;(3)资源受限;(4)高可靠性;(5)实时性;(6)软件固化。 (2)应用:(1)冰箱、洗衣机、电饭煲、空调、摄影机、DVD播放器等;(2)数控机床、飞机、汽车、电梯、X光机、血压计等;(3)电话机、传真机、打印机、pos机、GPS导航仪、路由器等。 1.1.2嵌入式系统组成与分类 (1)逻辑组成:硬件和软件,分为处理器、存储器、I|0设备与I|O接口,数据总线; (2)处理器:分为主处理器(CPU)和协处

chemkrik的博客 1万+

详细了解sklearn中的CountVectorizer

CountVectorizer 是 scikit-learn(一个流行的 Python 机器学习库)中的一个文本特征提取类,其核心功能是将一系列原始文本(如句子、文档)转换为基于词频(word count)的数值矩阵。它基于词袋模型(Bag of Words, BoW)思想,忽略文本的语法结构和词序,仅关注词汇在文本中出现的频率,从而将文本转化为机器可理解的数字形式。文本 1:"I love machine learning"

2302_76568160的博客 1119

shell脚本变量特殊字符的含义

一、shell脚本变量$#,$*,$$,$@,$0,$1,$2,$?的含义参数说明1:$# 表示执行脚本传入参数的个数2:$*  表示执行脚本传入参数列表3:$$ 表示进程id4:$@表示执行脚本传入所有参数5:$0 表示执行脚本名称6:$1 表示第一个参数7:$2 表示第二个参数8:$? 表示脚本执行状态0正常,其他表示有错误实验及结果#!/bin/shecho "parm number is ...

lovemysea的专栏 4332

别再为下载速度发愁了!手把手教你给qBittorrent/Transmission添加最新可用Tracker(附2024年实测地址清单)

本文提供2024年BT下载加速实战指南,详细解析Tracker工作原理与速度瓶颈,手把手教你为qBittorrent/Transmission添加最新可用Tracker,并附实测地址清单。通过优化配置和精选Tracker列表,显著提升下载速度和稳定性,解决连接延迟和peer数量限制问题。

weixin_28481133的博客 1262

Shell 特殊字符大全

1.Shell 简介 Shell 是类 Unix 操作系统的命令解析器,用于解释执行用户输入的一连串命令,它类似于 DOS 下的 command.com 和后来 Windows 的 cmd.exe。同时 Shell 也是一种程序设计语言。作为命令解释型的脚本语言,它交互式解释和执行用户输入的命令或者自动地解释和执行预先设定好的一连串的命令;作为程序设计语言,它预定义了各种环境变量,保留了一些关键字以及一些特殊字符的含义,并提供了许多在高级语言中才具有的控制结构,包括循环和分支判断。 这里再简要地介绍一下 S

Jay的博客 3823

LPDDR5X内存技术解析:性能提升与优化策略

内存技术在现代计算系统中扮演着核心角色,其性能直接影响整体系统效率。LPDDR5X作为JEDEC最新标准,通过提升数据传输率至8533Mbps、优化能效比15%以上,并扩展突发长度至32字节,显著提升了移动设备的处理能力。这些改进特别适用于5G通信、AI加速(如昇腾芯片)及8K视频处理等高带宽需求场景。技术原理上,LPDDR5X引入了动态电压频率调整(DVFS)和可编程突发长度等创新机制,有效降低了实际应用中的延迟。在工程实践中,合理的PCB布局和信号完整性验证是确保高速稳定运行的关键。随着AI和8K应用的

weixin_29190169的博客 398

仿真学习系列(三十八):Sigrity仿真之单端S参数提取

S 参数(Scattering Parameters)是高速信号分析中最基础也最常用的指标,能够全面表征走线、过孔、连接器等互连结构的高频行为。在 Sigrity PowerSI 中,Model Extraction 是最常用的 S 参数提取方式,适用于高速差分线、单端线、过孔、参考平面等各种拓扑结构。 本节将通过示例讲解如何在 PowerSI 中完成一次完整的 S 参数提取流程,包括:对象选择、端口设置、频率范围配置以及结果查看。掌握此方法后,即可对任意高速网络执行阻抗、插损、回损、串扰分析,为进一步的

案例文章,高速信号 838

shell脚本中linux命令特殊字符,shell中的特殊字符

shell中除使用普通字符外,还可以使用一些具有特殊含义和功能的特殊字符。在使用它们时应注意其特殊的含义和作用范围。下面分别对这些特殊字符加以介绍。1.通配符通配符用于模式匹配,如文件名匹配、路经名搜索、字符串查找等。常用的通配符有*、?和括在方括号[ ]中的字符序列。用户可以在作为命令参数的文件名中包含这些通配符,构成一个所谓的“模式串”,在执行过程中进行模式匹配。*代表任何字符串(长度可以不等...

weixin_34900470的博客 3074

华为OD机试双机位C卷:流量波峰 (C/C++/Py/Java/Js/Go)

华为OD机试双机位C卷 流量波峰,提供C语言、Java、C++、Python、Go、JavaScript源码实现,并提供完整思路讲解。华为OD机试 - 流量波峰。

qq_45776114的博客 2445

Shell 中的特殊字符

  作者: zccst Shell 除了作为命令解释程序以外,还是一种高级程序设计语言。利用 Shell 程序设计语言可以编写出功能很强、但代码简单的程序。   建立 Shell 过程的步骤同建立普通文本文件相同,利用编辑器(如 vi 或 gedit )进行程序录入和编辑加工。   执行 Shell 过程的方式主要有以下 3 种。 ( 1 )输入定向到 Shell

409

ET2012新版免狗免安装绿色软件

ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

Shell中的特殊字符

Shell中的特殊字符 作者:zccstShell除了作为命令解释程序以外,还是一种高级程序设计语言。利用Shell程序设计语言可以编写出功能很强、但代码简单的程序。 建立Shell过程的步骤同建立普通文本文件相同,利用编辑器(如vi或gedit)进行程序录入和编辑加工。 

zccst的专栏 3547

SIMATIC S7-1200, S7-1500 PID 控制[手册]

SIMATIC S7-1200, S7-1500 PID 控制[手册]

Shell中特殊字符的用法总结大全

Shell中特殊字符的用法总结大全前言1、;分号2、| 管道3、&4、&&5、||6、# 井号7、!惊叹号8、$ 美元符号9、> 大于号10、<,+,- 小于号11、>>12、<<13、'' 单引号,"" 双引号14、% 百分号15、[] 单方括号16、[[]] 双方括号17、. 英文句点号18、{} 大括号19、^ 前言 众所周知shell既是类Unix操作系统的命令解析器,用于解释执行用户输入的一连串命令,它类似于DOS下的command和后来

qq_43578594的博客 960

Linux外壳程序编程 shell编程 引号详解

1.shell变量的定义及其使用2.位置参数和环境变量3.shell中的特殊字符目录前言一、SHELL变量二、SHELL中的特殊字符(1)通配符1. * 星号2.?问号3.!叹号(2)引号1.双引号2.单引号-所见即所得3.倒/反引号和$作用相同4.反斜线三、条件测试1.字符串比较2.数字比较3.文件操作符四、测试语句五、执行shell程序的方法。

m0_57656758的博客 1226

代码中执行shell命令,命令参数含特殊字符时的处理方法

在代码测试过程中,发现如果执行的命令参数中包含特殊字符,如单引号、空格等时,命令无法正确执行。比如在c代码中调用system语句执行zip压缩命令,文件绝对路径为/home/hui/abc .txt,文件名中包含空格,具体测试代码如下: #include <stdio.h> #include <stdlib.h> #include <sys/stat.h> ...

huihui199003的博客 7335

sed 处理替换字符中的特殊字符

今天编写shell程序时遇到了一个关于sed命令的问题。问题简化如下。 文本文件1.txt中包含字符串[:50] ~/Documents/books/linux/test$:cat 1.txt [:50] 愿意想将[:50]替换为[50:100],脚本如下:~/Documents/books/linux/test$:cat test.sh #!/bin/bash oldstr="[:50]

chenwei19870313的博客 3万+

【vim程序编辑器与shell】

vim编辑器,编辑模式下,插入模式下,命令模式下的命令;shell语言,脚本的建立与执行,shell变量,特殊字符,输入输出命令,位置参数;正则表示法;输入输出重定向;管道符

weixin_42504934的博客 1281

二、shell中的变量

变量的命名规范:只允许使用数字字母和下划线,不能用数字开头。变量赋值规范:变量名和变量的值之间用连接,且等号左右不能有空格,如果变量的值含有空格字符,那么需要用引号引起来。变量的类型:shell是一种动态类型语言和弱类型语言,变量是不分数据类型的,统一都使用字符串存储,但根据变量的上下文环境,允许程序执行一些不同的操作,如:比较、整数加减。在命令行中定义:退出当前进程后该变量则失效方式1:直接赋值,字符串建议使用引号引起来,尤其是字符串中有空格时必须使用单引号或者双引号引起来。

如果喜欢的话,点个赞吧~ 413

Shell脚本的基本语法(二) 预定义特殊字符、case语句和函数调用

一、Shell中有许多预定义的特殊字符:        $n   :n是一个数字(大于10则用大括号括起来,${12}),代表程序的第n个参数        $#   :总共有多少个参数        $*    :指所有的参数        $@  :指所有的参数        $?   : 上次命令执行的返回值        注意:我们发现$*和$@的意思是一样的,其实它们

迷雾江湖 的博客 1511

linux 命令详解 大于号_Shell中特殊字符的用法总结大全

前言众所周知shell既是类Unix操作系统的命令解析器,用于解释执行用户输入的一连串命令,它类似于DOS下的command和后来Windows的cmd.exe。同时shell也是一种程序设计语言。作为命令解释型的脚本语言,它交互式解释和执行用户输入的命令或者自动地解释和执行预先设定好的一连串的命令;作为程序设计语言,它预定义了各种环境变量,保留了一些关键字以及一些特殊字符的含义,并提供了许多在高...

weixin_39581972的博客 1515
上一篇: Linux下Shell编程(一)
下一篇: Shell程序中的流程控制(三)
Keep_Trying_Go
博客等级 码龄6年 8546粉丝 1230原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值