Loading [MathJax]/jax/output/CommonHTML/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >反斜杠置换

反斜杠置换

作者头像
Lauren的FPGA
发布于 2019-10-30 16:23:19
发布于 2019-10-30 16:23:19
2.7K0
举报
文章被收录于专栏:Lauren的FPGALauren的FPGA

上期内容:命令置换

最后一种置换是反斜杠置换。与C语言中的反斜杠用法类似,Tcl中的反斜杠主要用于在单词中插入被Tcl解释器当作特殊符号的字符,例如换行、空格、[、$等。

例如,需要给变量str1赋值为helloworld(注意hello与world之间有空格),如果没有反斜杠,Tcl解释器会认为这里的空格是分割符,从而认为set命令的参数多于两个,故报错。添加反斜杠\后,空格不再被当作分割符,hello world被当作一个整体,作为一个单词。第二个例子中,需要给变量str2赋值为$5,由于$是变量置换符,如果直接写成$5,Tcl解释器会认为$后跟的是变量名,但5作为变量名并不存在,故报错。添加反斜杠\后,$不再被认为是变量置换符。第三个例子中,需要给变量net_name赋值reg[0],而[是命令置换符,但0显然不是合法命令,故报错。添加反斜杠\后,[不再被当作命令置换符处理。

如果希望反斜杠本身成为变量值的一部分,那么也是需要通过反斜杠\置换完成的。例如,给变量str4赋值\,输入set str4 \并回车,Tcl解释器会处于等待输入的状态,这是因为反斜杠\还可以用于续行(续行会在后续文章中介绍)。第二个例子中,给变量str5赋值\b,但\b实际上是Backspace,故需要通过反斜杠\置换,才可以得到\b。

结论:

-对于被Tcl解释器当作特殊字符处理的,例如$、[、空格和换行等需要反斜杠置换以获得正确结果

-反斜杠本身也被Tcl解释器认为是特殊字符

如果文章对你有收获,欢迎转发~

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2018-08-16,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 Lauren的FPGA 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
双引号与花括号
在Tcl中,可通过双引号“”和花括号{}将多个单词包括分隔符(例如:换行符和空格)和置换符(例如:美元符号$、方括号[]和反斜杠)等特殊字符组成一组,作为一个参数处理。这实际上也是一种置换操作。区别在于双引号内的置换正常进行,而花括号内的置换有可能会被阻止,如下图所示。变量s被赋值为Hello World,注意这里通过双引号避免了空格被当作分隔符处理。第一个puts命令使用了双引号,可以看到所有置换都随之发生;第二个puts命令使用了花括号,相应的内部置换均被阻止。
Lauren的FPGA
2019/10/31
2.4K0
tcl三部曲(一)、替换、引用与匹配
Tcl最早被称为工具命令语言,“Tool command language”,是一种脚本语言。
根究FPGA
2020/08/13
3.9K0
tcl三部曲(一)、替换、引用与匹配
注释与续行
Tcl中的注释符为井号#,但井号#的位置是有所讲究的,即它必须位于命令的第一个字符。从这个角度而言,Tcl的注释和命令处于同一层次,这意味着一个注释要占用一个命令位置。看一个简单的例子。在这个例子中,第一条注释独自占据一行并以#开始,因此该注释是合法的;第二条注释尽管和set命令在同一行,但set命令后紧随分号,表明命令结束,故该注释也是合法的;第三条注释中,#出现在set命令中间,并不是命令的第一个字符,而被当做set命令的一部分,从而造成set命令参数设置不合理。
Lauren的FPGA
2019/10/31
1.1K0
Python 编程中反斜杠 “\” 的作用:作为续行符和转义字符,处理文件路径和正则表达式时需特别注意。
Python 中的反斜杠 \ 可以被用作续行符,它允许你将一行代码分成多行来书写,以提高代码的可读性。这在处理长字符串、复杂的数学表达式或其他需要多行布局的代码时非常有用。
叶庭云
2024/05/25
8.8K0
Python 编程中反斜杠 “\” 的作用:作为续行符和转义字符,处理文件路径和正则表达式时需特别注意。
变量置换
除了直接给变量赋值之外,另一种常见情形是把某个变量的值赋给另外一个变量。例如,变量x的值为1,我们期望变量y的值是x+2也就是3。采用如下代码,最终发现y的结果是x+2,并不是期望值3。这里就涉及到变量置换。
Lauren的FPGA
2019/10/31
9040
深入理解Tcl中的置换
Tcl语言中有三类置换:变量置换(点击这里复习:变量置换)、命令置换(点击这里复习:命令置换)和反斜杠置换(点击这里复习:反斜杠置换)。可以说“置换”是Tcl的灵魂,同时也是让初学者容易感到困惑的一个难点。很多初学者常会碰到这样的情形:不希望发生置换时却发生了或者希望发生置换时却没有发生,加之一些Tcl解释器调试功能欠佳,往往让初学者受挫,觉得自己的脚本发生了诡异的行为。实际上,Tcl的置换机制很简单,其行为也很容易预测,只需记住如下两条规则:
Lauren的FPGA
2019/10/31
1.6K0
07-2 引用
二、引用(控制扩展) 现在我们已经知道,shell 有多种方式可以进行扩展,现在我们来学习如何控制扩展。 echo this is a test echo The tota is $100.0
见贤思齊
2020/08/05
7320
《数字集成电路静态时序分析基础》笔记①
网络课程《数字集成电路静态时序分析基础》的笔记 地址:https://www.iccollege.cn/portal/courseDetail/193.mooc 如何启动tcl linux:在文本第一
空白的贝塔
2020/06/24
1K0
《数字集成电路静态时序分析基础》笔记①
Python变量与字符串
版权声明:本文为博主原创文章,欢迎扩散,扩散请务必注明出处。
Leshami
2018/11/07
1.9K0
正斜杠和反斜杠的区别_vb斜杠和反斜杠
参考链接: 正斜杠/和反斜杠\的区别 https://www.cnblogs.com/codingmengmeng/p/6179822.html
全栈程序员站长
2022/09/20
2.6K0
正斜杠和反斜杠的区别_vb斜杠和反斜杠
变量赋值
Tcl脚本的构成如图所示,可以只包含一条命令,也可以包含多条命令,命令之间可以是分号隔开,也可以是换行。如下图所示。
Lauren的FPGA
2019/10/31
2.7K0
(正)斜杠 与 反斜杠
在 Windows 系统中,正斜杠/ 表示除法,用来进行整除运算;反斜杠\ 用来表示目录,例如:E:\学习资料\java\传智播客_2015年Java基础视频-深入浅出精华版\day11。
黑泽君
2018/10/11
4.2K0
【JavaScript】JavaScript 变量 ⑤ ( JavaScript 数据类型 - String 字符串类型 | 引号嵌套 | 创建字符串 | 转义字符 )
JavaScript 的 String 字符串类型 是 基本数据类型 的一种 , 用于表示文本数据 ;
韩曙亮
2024/03/12
2850
【JavaScript】JavaScript 变量 ⑤ ( JavaScript 数据类型 - String 字符串类型 | 引号嵌套 | 创建字符串 | 转义字符 )
shell 教程,这次我要步步详解,学会了以后能早点下班
在 Bash shell 中,每一个变量的值都是字符串,无论你给变量赋值时有没有使用引号,值都会以字符串的形式存储。
看、未来
2022/05/06
4.3K0
shell 教程,这次我要步步详解,学会了以后能早点下班
Python编程思想(4):字符串类型
字符串的意思就是“一串字符”,也可以看做是字符的序列。比如“Helo, Mike”是一个字符串,“How are you?”也是一个字符串。Python要求字符串必须使用引号括起来,不过Python与
蒙娜丽宁
2020/05/19
9840
如何处理Shell脚本中的特殊字符
有时,当我们编写 shell 脚本时,我们必须处理特殊字符,如空格、符号和其他非 ASCII 字符。这些字符可能无法直接由 shell 脚本和其他工具处理。因此,我们必须采取一些措施来处理这些特殊字符。
IT运维技术圈
2022/12/26
8.3K0
使用 Python 创造你自己的计算机游戏(游戏编程快速上手)第四版:致谢到第四章
没有 No Starch Press 团队的出色工作,这本书就不可能问世。感谢我的出版商 Bill Pollock;感谢我的编辑 Laurel Chun、Jan Cash 和 Tyler Ortman,在整个过程中给予我的难以置信的帮助;感谢我的技术编辑 Ari Lacenski 进行了彻底的审查;感谢 Josh Ellingson 再次为我设计了出色的封面。
ApacheCN_飞龙
2024/01/17
3050
使用 Python 创造你自己的计算机游戏(游戏编程快速上手)第四版:致谢到第四章
Python – 数据类型之字符串、数字
Python 中的变量不需要声明。每个变量在使用前都必须赋值,变量赋值以后该变量才会被创建。
全栈程序员站长
2022/09/02
6980
Linux笔记5.展开与引用
参数展开 路径名展开 [root@senlong usr]# echo * bin etc games include lib lib64 libexec local man sbin share src tmp 为何echo不打印 * ?是因为shell把 * 展开成了另外的东西(在这种情况下,就是在当前工作目录下的文件名字) 这种通配符工作机制叫做路径名展开 [root@senlong usr]# echo l* lib lib64 libexec local 算术表达式展开 shell 允许算术表达式
章鱼喵
2018/06/27
7900
第八章:从 shell 眼中看世界
In this chapter we are going to look at some of the “magic” that occurs on the commandline when you press the enter key. While we will examine several interesting andcomplex features of the shell, we will do it with just one new command:
砖业洋__
2023/05/06
2550
相关推荐
双引号与花括号
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档