位置: 编程技术 - 正文

Shell命令行中特殊字符与其转义详解(去除特殊含义)(shell命令tee)

编辑:rootadmin

推荐整理分享Shell命令行中特殊字符与其转义详解(去除特殊含义)(shell命令tee),希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:shell命令tee,shell的特殊变量,shell命令tee,shell特殊字符处理,shell命令tee,shell会用几个特殊字符来处理参数,shell中\t,shell中特殊字符,内容如对您有帮助,希望把文章链接给更多的朋友!

特殊符号及其转义

大家都知道在一个shell命令是由命令名和它的参数组成的, 比如 cat testfile, 其中cat是命令名, testfile是参数. shell将参数testfile传递给cat命令. 但是, 如果参数中含有特殊字符, 比如说*, *我们知道,是表示任意多个(包括0个)任意字符. 那么shell的工作方式是,它会对这些特殊字符进行预先处理, 然后再将处理的结果传给那个命令.

比如说,如果你的当前目录有file, file1, file2 三个文件, 那么当你执行cat file*的时候, shell会对参数部分file*进行预先处理, 由于*表示任意多个(包括0个)任意字符,那么处理的结果便是file file1 file2,接下来,shell再将这个结果, 即file file1 file2传递给cat命令, 所以你看到的结果跟直接执行cat file file1 file2是一样的, 那就是三个文件的内容都显示在命令行终端.

实际上,我们有办法看到shell处理的结果是什么,或者说真正执行的命令是什么样子的, 那就是在你要执行的命令之前加上echo.比如说,在上面的目录下,你执行echo cat file* , 那么你将看到

上面那条命令,就是经过shell对参数的处理之后,真正执行的命令.

但是很多时候,我们希望传递给这些命令的,就是这些参数本身, 比如说,你当前目录下有一个文件的文件名就叫test*, 同时还有另外一个文件, test1. 而你只想看test*的内容, 这时候,如果你执行

的话,那么test*和test1的内容都会被显示出来,这时候怎么办呢&#; 这里就涉及到特殊字符的转义(escape)的问题了.所谓的转义,意思就是去掉它的特殊含义.让shell把他们当做一般字符对待,不要进行特殊处理.

在shell中,特殊字符的转义有三种办法

用转义: 把字符放在特殊字符的前面 用单引号('')转义: 用单引号把参数括起来 用双引号("")转义: 用双引号把参数括起来

在上面的例子中,这三种方法都是有效率的,也就是说,下面的三个命令都能达到目的:

cat test* cat 'test*' cat “test*”

三种转义方法的范围

Shell命令行中特殊字符与其转义详解(去除特殊含义)(shell命令tee)

在shell中,特殊字符是非常多的,而以上提到的三种转义方法的范围也不尽相同,其中第一种方法的范围是最广的,几乎可以对所有的特殊字符进行转义,常见的用法是把放在一个命令行的最后,这样一个很长的命令就可以分为两行或者更多行写. 比如

将显示成

在这里,其实就是把换行符转义了,让它失去了换行的意思,同时阻止命令立刻执行.

第二种转义(单引号)的范围比第一种小,它可以阻止命令行立刻执行,但是它不能让换行符失去换行的意思. 所以

将显示成

第三种转义(双引号)的范围又比第二种小,单引号可以转义"`", 而双引号不行. 在shell中, "`"中间的东西将被视为命令替换. shell对参数进行预先处理时,将把两个"`"中间的东西当做shell命令进行执行,再将执行结果替换掉他们本身. 举个例子:

将显示

当然,具体的日期跟你执行这条命令的时期有关. 总之,意思你应该明白了. 再回到原来的问题,我们说单引号可以转义"`", 而双引号不行, 意思就是,单引号之间的"`"将失去它的特殊含义,而双引号之间的"`"将依然有特殊含义,所以

将显示

将显示

常见的一些特殊字符

* 任意个任意字符 &#; 一个任意字符 [..] []中的任意一个字符,这里也类似于正则表达式,中括号内可以是具体的一些字符,如[abcd]也可以是用-指定的一个范围,如[a-d] # 注释 (空格) 参数分隔符 cmd 命令替换 | 管道 & 后台执行 ; 命令分隔符(可以在同一行执行两个命令,用;分割) ~ 用户home目录

最后记得,任何时候,你不确定自己是不是转义对了,或者是特殊字符用对了,记得可以在命令前面加上echo,来看看真实执行的命令是怎么样的.

总结

标签: shell命令tee

本文链接地址:https://www.jiuchutong.com/biancheng/374605.html 转载请保留说明!

上一篇:每天一个linux命令 whereis命令(linux每隔1s执行一次命令)

下一篇:复制 Windows cmd 窗口命令行的信息方法(复制链接)

  • 应税所得率表
  • 企业季度报什么税
  • 留抵税额抵税怎么做分录
  • 营改增 旅游服务
  • 应交税金的负数金额要怎么调整
  • 电信线路租用的手机
  • 安装过程中材料和工资
  • 事业单位收到增值税专用发票抵扣联怎么办
  • 建筑工程增值税税率是9还是11
  • 一次性离职补偿个税
  • 企业所得税季报资产总额怎么填
  • 分公司注销总公司会计分录
  • 企业暂估收入申报,未开发票,几年以后要开票如何处理
  • 公司工会发给职工的福利
  • 金融机构计提减值准备
  • 境内向境外提供服务免征增值税
  • 工会经费申报表的应税项应该怎样填写
  • 建厂房的费用怎么记账
  • 支付水电费如何记账
  • 公司收到项目投资款怎么做账 项目结束后需要退本金
  • 单位出纳的业务有哪些
  • 销售自己使用过的物品的税率
  • 服务成本怎么处理
  • 电脑上的五角星是什么意思
  • 苹果mac os x 10.7.5
  • PHP:spl_autoload()的用法_spl函数
  • 企业职工福利费的扣除标准是多少?
  • 公司搞活动买的车能买吗
  • 企业常用的消毒措施有
  • flex的几个常用布局
  • Mont Choisy Beach, Mauritius (© Robert Harding World Imagery/Offset by Shutterstock)
  • php处理大量数据
  • 存货损失的会计处理方法
  • 汇算清缴怎么调减
  • 其他非流动资产包括哪些
  • 你让他心动他让你心安
  • php排序方法有几种区别
  • 银行承兑汇票贴现分录
  • 开了银行对公账户要多久
  • 学电脑哪个网站比较好
  • 银行存款余额调节表保管期限
  • 普通收据能入账嘛
  • 进口关税如何交
  • 知道实发工资怎么算应发工资计算器
  • 联营企业有重大影响吗
  • server更改密码
  • sqlserver常用命令
  • 简易计税方法的适用范围
  • 增值税专用发票查询系统官方网站
  • 专家评审费如何入账
  • 固定资产以提足金为准吗
  • 旅行社差额征收税率多少
  • 申报工资总额除以在职人员人数
  • 银行回单自助打印可以打多久的记录
  • MySQL通过触发器解决数据库中表的行数限制详解及实例
  • 催化剂过低怎么解决
  • 苹果15手机价格和图片颜色
  • linux 匹配字符
  • mac阻止itunes自动弹出
  • windows7使用
  • windows mobile
  • 在linux中使用什么命令可以执行shell脚本
  • androidstudio listview
  • jquery对动态生成的进行操作
  • nodejs实战教程
  • linux shell脚本实例
  • jquery解析json数据
  • jquery validate remote
  • ssh执行远程命令 参数
  • unity3d手机怎么打开
  • onSaveInstanceState和onRestoreInstanceState触发的时机
  • android 监听事件
  • js响应鼠标点击不了
  • jquery怎么写轮播图
  • 如何搭建python项目架构
  • 电子发票查询系统手机查询
  • 中国移动怎么下载账单
  • 农产品进项税额核定扣除办法2019
  • 垠坤集团是属于国企吗
  • 安徽工作人员出差费用标准
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

    网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

    友情链接: 武汉网站建设