首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

双引号与括号

区别在于双引号内置换正常进行,而括号置换有可能会被阻止,如下图所示。变量s被赋值为Hello World,注意这里通过双引号避免了空格被当作分隔符处理。...第一个puts命令使用了双引号,可以看到所有置换都随之发生;第二个puts命令使用了括号,相应内部置换均被阻止。 ? 双引号另一常用情形是出现在嵌套命令中,且嵌套命令是外层命令参数一部分。...给变量b赋值时使用了反斜杠置换,给变量c赋值时使用了双引号加括号,其中双引号在最外层,给变量d赋值时使用了括号加双引号,其中括号在最外层,对比下来可以得出这样结论:在同时使用双引号和括号时,最外层做主...对于括号,如前文所述“括号置换有可能会被阻止”,这是因为括号功能稍微复杂一些,但总的来说遵循两个原则:第一个原则是如果括号是用做置换操作,则其内部置换操作会被阻止;第二个原则是如果括号用做界限符...如果需要双引号或括号作为普通字符出现在字符串中时,可通过反斜杠\置换,或者通过双引号和括号嵌套使用实现特定功能,如下图所示。 ?

2.2K10
您找到你想要的搜索结果了吗?
是的
没有找到

shell中各种括号作用(中)

三.大括号括号 {} 常规用法 1.大括号拓展。(通配(globbing))将对大括号文件名做扩展。在大括号中,不允许有空白,除非这个空白被引用或转义。...第一种:对大括号以逗号分割文件列表进行拓展。如 touch {a,b}.txt 结果为a.txt b.txt。...第二种:对大括号中以点点(..)分割顺序文件列表起拓展作用,如:touch {a..d}.txt 结果为a.txt b.txt c.txt d.txt #ls {ex1,ex2}.sh ex1.sh...与小括号命令不同,大括号命令不会新开一个子shell运行,即脚本余下部分仍可使用括号内变量。括号命令间用分号隔开,最后一个也必须有分号。{}第一个命令和左括号之间必须要有一个空格。...结构中pattern支持通配符,表示零个或多个任意字符,?表示仅与一个任意字符匹配,[…]表示匹配中括号里面的字符,[!…]表示不匹配中括号里面的字符。

1.8K20

shell中各种括号作用(上)

一.小括号,圆括号() 单小括号() 1.命令组。括号命令将会新开一个子shell顺序执行,所以括号变量不能够被脚本余下部分使用。...再如可以直接使用if (($i<5)), 如果不使用双括号, 则为if [ $i -lt 5 ]。 二.中括号,方括号[] 单中括号 [] 1.bash 内部命令,[和test是等同。...如果我们不用绝对路径指明,通常我们用都是bash自带命令。if/test结构中左中括号是调用test命令标识,右中括号是关闭条件判断。...[ ]中逻辑与和逻辑或使用-a 和-o 表示。 3.字符范围。用作正则表达式一部分,描述一个匹配字符范围。作为test用途括号内不能使用正则。...4.在一个array 结构上下文中,中括号用来引用数组中每个元素编号。 双中括号[[ ]] 1.[[是 bash 程序语言关键字。并不是一个命令,[[ ]] 结构比[ ]结构更加通用。

88220

shell中各种括号作用()、(())、]、{}「建议收藏」

大家好,又见面了,我是你们朋友全栈君。 一、小括号,圆括号() 1、单小括号 () ①命令组。括号命令将会新开一个子shell顺序执行,所以括号变量不能够被脚本余下部分使用。...、括号 {} 1、常规用法 ①大括号拓展。...第二种:对大括号中以点点(..)分割顺序文件列表起拓展作用,如:touch {a..d}.txt 结果为a.txt b.txt c.txt d.txt # ls {ex1,ex2}.sh...与小括号命令不同,大括号命令不会新开一个子shell运行,即脚本余下部分仍可使用括号内变量。括号命令间用分号隔开,最后一个也必须有分号。...对{}和()而言, 括号重定向符只影响该条命令, 而括号重定向符影响到括号所有命令。

3.9K40

我们在何时需要对Shell变量使用括号

是否有一种是更受推荐? 回答 在上述特定示例代码中,没有区别。...但是,当你想要在字符串中扩展变量 foo 时,${} 中 {} 是有用: "${foo}bar" 因为 "$foobar" 将会扩展变量 foobar,而不是预期变量 foo。...变量名结尾后面通常是空格或换行符。但如果我们不想在打印变量值后接着打印空格或换行怎么办?这时就需要用括号告诉 Shell 解释器变量名结束位置。...括号还无条件需要在以下情况下使用: 扩展数组元素,如:${array[5]} 使用参数扩展操作,如:${filename%.*}(移除扩展名;剥离最小匹配) 扩展总数超过 9 位置参数,如:"{10...这既是为了一致性,也是为了避免像 foo_bar.jpg 这样意外,其中下划线成为变量名一部分并不明显。 你还可以在括号内进行一些文本操作: STRING=".

13200

使用双括号初始化集合,可别这么干

Double Brace Initialization should not be used 前言 最近在修改sonar问题时,发现有人使用双括号初始化集合,提示可能发生内存泄漏。...:bob Thread name: Finalizer Object: sandy Gc happen 分析 匿名内部类持有外部类对象引用 双括号初始化时,可以直接使用外部类对象成员name。...当然这只是表面,接下来我们从字节码层面看看到底怎么回事。 使用了匿名内部类 双括号初始化方法 非双括号初始化方法 编译后产生文件 可以发现,多了一个内部类:A$1.class。...查看内部类字节码 拥有一个外部类成员变量 通过构造方法传入了外部类对象引用 将外部类对象引用赋值给成员变量 执行我们写put方法 内部类继承于HashMap 发生了内存泄漏 使用非双括号初始化...mapsandy被回收了,而使用双括号初始化mapbob却没有被回收。

86230

Go:作用域与结构--大括号特殊用法

单独使用大括号情况及其用途 尽管不常见,但以下是在Go语言中可能会单独使用大括号几种情况: 限制变量作用域: 用途:单独括号代码块可以用来创建一个独立作用域。...在这个作用域内声明变量,在代码块结束后就不再可访问。这有助于避免变量名冲突,管理变量生命周期,以及减少内存使用。...示例: go if someCondition { // TODO: 待实现 } 建议和最佳实践 尽管在技术上可以在Go中使用单独括号代码块,以下是一些关于何时以及如何使用它们建议: 明确作用域...:只在确实需要限制变量作用域或避免命名冲突时使用单独括号。...在这种情况下,应该进行适当性能测试和评估。 结论 在Go语言中,虽然大括号通常是与其他语句结合使用,但在特定情况下,单独括号代码块可以用于特定用途,如限制变量作用域或作为代码占位符。

25410

有效括号java

有效括号 1、题目描述 题目描述: 给定一个只包括 ‘(’,‘)’,‘{’,‘}’,‘[’,‘]’ 字符串 s ,判断字符串是否有效。...有效字符串需满足: 左括号必须用相同类型括号闭合。 左括号必须以正确顺序闭合。 每个右括号都有一个对应相同类型括号。...,即不考虑数学意义上括号意义:也就是说,只要括号正确闭合就行,类似 ([])、({})、[{}]、([{}]) 等也符合题目中有效括号定义。...例如示例4输出为true 思路1: 对于任何有效初始括号字符串均至少含有()、{}、[]三对括号一对,故使用contains()循环判断是否含有这三对括号,若有则使用replace()删除...第一次解题:只考虑了括号数量成对,未考虑括号位置 第二次解题:想太多,认为{}包含关系是固定,即[{}] 为无效括号 第三次解题:对于空字符串判断使用!

32910

有效括号(java)

括号必须以正确顺序闭合。 ...所以当我仔细观察,却发现了一个特点,跟栈先入后出特别非常吻合,即若遇到左括号入栈,遇到右括号时将对应栈顶左括号出栈即可,所以只需遍历完所有括号后 ​​stack​​ 仍然为空,这就说明括号是有效。...所以算法思路就是:​​遍历字符串​​ str,然后分情况: 当遇到一个左括号时,在后续遍历中希望有一个相同类型括号将其闭合。由于后遇到括号要先闭合,因此我们可以将这个左括号放入栈顶。...当遇到一个右括号时,我们则需要将一个相同类型括号闭合。此时,我们可以取出栈顶括号并判断它们是否是相同类型括号。...动画演示:        如上动画就是结合栈特点来验证该括号是否有效一个过程,最终栈空就表示该括号是有效,栈不为空,则表示该括号无效。

29620

shell中括号(小括号,中括号,大括号

一、小括号,园括号()   1、单小括号 ()     ①命令组。括号命令将会新开一个子shell顺序执行,所以括号变量不能够被脚本余下部分使用。...如果我们不用绝对路径指明,通常我们用都是bash自带命令。if/test结构中左中括号是调用test命令标识,右中括号是关闭条件判断。...④bash把双中括号表达式看作一个单独元素,并返回一个退出状态码。 三)大括号括号 {}   1、常规用法。     ①大括号拓展。(通配(globbing))将对大括号文件名做扩展。...第二种:对大括号中以点点(..)分割顺序文件列表起拓展作用,如:touch {a..d}.txt 结果为a.txt b.txt c.txt d.txt bogon:/home/bash # ls {ex1...与小括号命令不同,大括号命令不会新开一个子shell运行,即脚本余下部分仍可使用括号内变量。括号命令间用分号隔开,最后一个也必须有分号。

3.9K10
领券