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

Linux Shell ()、(())、]、{} 怎么用是不是还傻傻分不清?

如果我们不用绝对路径指明,通常我们用都是bash自带命令。if/test结构括号是调用test命令标识,括号是关闭条件判断。...这个命令把它参数作为比较表达式或者作为文件测试,并且根据比较结果来返回一个退出状态码。if/test结构并不是必须括号,但是新版Bash要求必须这样。...(通配(globbing))将对大括号文件名做扩展。在大括号,不允许有空白,除非这个空白被引用或转义。第一种:对大括号以逗号分割文件列表进行拓展。...3、四种模式匹配替换结构 模式匹配记忆方法: # 是去掉左边(在键盘上#在$之左边) % 是去掉右边(在键盘上%在$之右边) #和%单一符号是最小匹配,两个相同符号是最大匹配。...结构pattern支持通配符,*表示零个或多个任意字符,?表示仅与一个任意字符匹配,[...]表示匹配括号里面的字符,[!...]表示匹配括号里面的字符。

3.9K20

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

if/test结构括号是调用test命令标识,括号是关闭条件判断。这个命令把它参数作为比较表达式或者作为文件测试,并且根据比较结果来返回一个退出状态码。...if/test结构并不是必须括号,但是新版Bash要求必须这样。 ②Test和[]可用比较运算符只有==和!...(通配(globbing))将对大括号文件名做扩展。在大括号,不允许有空白,除非这个空白被引用或转义。第一种:对大括号以逗号分割文件列表进行拓展。...3、四种模式匹配替换结构 模式匹配记忆方法: # 是去掉左边(在键盘上#在之左边) % 是去掉右边(在键盘上%在之右边) #和%单一符号是最小匹配,两个相同符号是最大匹配。...结构pattern支持通配符,*表示零个或多个任意字符,?表示仅与一个任意字符匹配,[…]表示匹配括号里面的字符,[!…]表示匹配括号里面的字符。

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

shell括号(小括号括号大括号

如果我们不用绝对路径指明,通常我们用都是bash自带命令。if/test结构括号是调用test命令标识,括号是关闭条件判断。...这个命令把它参数作为比较表达式或者作为文件测试,并且根据比较结果来返回一个退出状态码。if/test结构并不是必须括号,但是新版Bash要求必须这样。    ...三)大括号、花括号 {}   1、常规用法。     ①大括号拓展。(通配(globbing))将对大括号文件名做扩展。在大括号,不允许有空白,除非这个空白被引用或转义。...与小括号命令不同,大括号命令不会新开一个子shell运行,即脚本余下部分仍可使用括号内变量。括号命令间用分号隔开,最后一个也必须有分号。...表示匹配括号里面的字符 bogon:/home/bash # var=testcase bogon:/home/bash # echo $var testcase bogon:/home/bash

3.9K10

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

Java开发编程规范: 3.代码格式

3大括号前换行。      4) 大括号后还有 else 等代码则不换行;表示终止大括号后必须换行。...【强制】左小括号和字符之间不出现空格;同样,括号和字符之间也不出现空格;而左大括号前需要空格。详见 5 条下方正例提示。...("world"); // 大括号前换行,大括号后有 else,不用换行 } else { System.out.println("ok"); // 在大括号后直接结束...3) 方法调用点符号与下文一起换行。       4) 方法调用多个参数需要换行时,在逗号后进行。      5) 在括号前不要换行,见反例。...【推荐】单个方法总行数超过 80 行。 说明:包括方法签名、结束大括号、方法内代码、注释、空行、回车及任何不可见字符总行数超过 80 行。

2.3K31

leetcode题解-20.有效括号

我们可以利用栈,遍历整个字符串,遇到左括号,入栈,遇到括号,检查栈是否是左括号,如果是,那么就将左括号出栈,括号也不入栈,相当于将成对括号“消掉”了。...遇见大括号,检查栈顶是左大括号,出栈: 此时扫描完毕,并且栈为空,因此该字符串合法。...其实这个时候就可以判断字符串不合法了): 栈顶 ( [ ) 遇到括号,检查栈顶是否有左方括号,发现没有,入栈: 栈顶 ( [ ) ] 扫描完成后,发现栈不为空,因此字符串不合法...代码实现 在实现代码时候,需要注意以下几点: 遇见第一个括号匹配时即退出 由于输入字符串长度可能较大,因此不适合使用静态数组 判断是否有左括号前检查栈是否为空 bool isValid(char*...,并且栈顶不是左括号,肯定匹配,直接退出*/ else if('}' == *s || ']' == *s || ')' == *s ) { topOfStack

41120

Java面向对象基础规范——代码格式

【强制】大括号使用约定。如果是大括号内为空,则简洁地写成{}即可,不需要换行;如果是非空代码块则:1) 左大括号前不换行。2) 左大括号后换行。3大括号前换行。...4) 大括号后还有 else 等代码则不换行;表示终止大括号后必须换行。2. 【强制】 左小括号和字符之间不出现空格;同样,括号和字符之间也不出现空格。详见 5 条下方正例提示。...// 左大括号前加空格且不换行;左大括号后换行if (flag == 1) {System.out.println("world");// 大括号前换行,大括号后有 else,不用换行} else...{System.out.println("ok");// 在大括号后直接结束,则必须换行}}6....正例:下例实参"a",后边必须要有一个空格。method("a", "b", "c");9.

19430

leetcode20:有效括号

if(c==='('||c==='['||c==='{')//如果是小中大括号的话,进栈 {//遇到左括号 stack.push(c);//进 } else//要出栈地方括号...因为比如{[]}的话,左大括号在最前面,但是却是最后一位出来。 左括号在前面,括号却是先出来。 新建一个栈? 为什么,因为还没有栈呢,没有用什么啊。 扫描字符串,为什么?...因为扫描做什么啊。 栈顶? 数组最后一位。 如果括号与栈顶(最后一位)匹配?什么意思?...记住哈,栈顶是进入栈最后一位啊,也就是最前面的把,也可以叫做左括号把,与括号匹配就行,不然不合法。如果最后栈空了就代表全部匹配完成就行,不然不行。 核心是:越靠后括号对应括号就越靠前。...左括号括号要进栈吗? 不需要,为什么,因为他只是用来匹配啊. 不需要进栈。 而且代码没有代码是进栈啊。 栈顶是什么? 最后一位数组,那是什么? 是栈开头哪一个.

34120

Linux Bash脚本15分钟进阶教程

)替代[] 使用[[]]能避免像异常文件扩展名之类问题,而且能带来很多语法上改进,而且还增加了很多新功能: 操作符 功能说明 || 逻辑or(仅双括号里使用) && 逻辑and(仅双括号里使用...) < 字符串比较(双括号里不需要转移) -lt 数字比较 = 字符串相等 == 以Globbing方式进行字符串比较(仅双括号里使用,参考下文) =~ 用正则表达式进行字符串比较(仅双括号里使用...,参考下文) -n 非空字符串 -z 空字符串 -eq 数字相等 -ne 数字不等 单括号: [ "${name}" \> "a" -o ${name} \< "m" ] 双括号 [[ "${name...}" > "a" && "${name}" < "m" ]] 正则表达式/Globbing 使用双括号带来好处用下面几个例子最能表现: t="abc123" [[ "$t" == abc* ]]...MARKER 内置变量 变量 说明 $0 脚本名称 $n 传给脚本/函数n个参数 $$ 脚本PID $! 上一个被执行命令PID(后台运行进程) $?

1.1K00

SHELL编程基本知识点一

* 万能匹配字符,用于文件名匹配(这个东西有个专有名词叫 file globbing),或者是正则 表达式.注意:在正则表达式匹配作用和在文件名匹配作用是不同....在 file globbing 中和在正则表达式中一样匹配任意单个字符. $ 变量替换;在正则表达式作为行结束符. ${} 参数替换 $*,$@ 位置参数 $?...大括号扩展,如: cat {file1,file2,file3} > combined_file # 把 file1,file2,file3 连接在一起,并且重定向到 combined_file ...{txt,backup} # 拷贝"file22.txt" 到"file22.backup" 一个命令可能会对大括号以逗号分割文件列表起作用[1]. file globbing 将对 大括号文件名作扩展...注意: 在大括号,不允许有空白,除非这个空白是有意义.

91120

shell脚本编程之路1

if/test结构括号是调用test命令标识/括号是关闭条件判断,注意结构并不是必须有括号,但是新版Bash要求必须这样。...# 4 ---- 5.大括号、花括号 {} 常规用法: 大括号拓展:通配(globbing))将对大括号文件名做扩展。...与小括号命令不同,大括号命令不会新开一个子shell运行,即脚本余下部分仍可使用括号内变量。...表示仅与一个任意字符匹配,[…]表示匹配括号里面的字符,[!…]表示匹配括号里面的字符 (基础正则)。.../hhme/centos echo ${var//o/h} #完全匹配替换 /hhme/cenths ---- 6.符号$后括号以及大括号 (1)${a} 变量a值, 在不引起歧义情况下可以省略大括号

2.7K20

栈应用代码检测就近匹配

你在使用编辑器写代码时候是否思考过这个问题:如果少写了一个大括号括号,编辑器就会提示错误,这种做法是怎么做到呢?...其实这个检测就可以通过栈模型来实现,括号数量总是匹配出现,并且都是与最近一个匹配。我们可以编写代码来实现这个检测功能。...‘[‘://左括号 ret = (right == ‘]‘); break; case ‘{‘://左大括号 ret = (right == ‘}’); break; case ‘\‘’://左单引号...)’://括号 case ‘]‘://括号 case ‘}’://大括号 case ‘\‘’://单引号 case ‘\“‘://双引号 ret = 1;//是需要检测符号返回1 break...(left) { case ‘<’://左尖括号 case ‘(‘://左小括号 case ‘[‘://左括号 case ‘{‘://左大括号 case ‘\‘’://左单引号 case ‘\“‘:/

12330

【CSS】248-天天都用CSS,你真的懂CSS吗?

3、因为所有样式规则可能数量很大,而且绝大多数不会匹配到当前 DOM 元素(因为数量很大所以一般会建立规则索引树),所以有一个快速方法来判断「这个 selector 匹配当前元素」就是极其重要。...试想一下,如果采用从左至方式读取 CSS 规则,那么大多数规则读到最后(最右)才会发现是匹配,这样会做费时耗能,最后有很多都是无用;而如果采取从向左方式,那么只要发现最右边选择器匹配,就可以直接舍弃了...3、CSSParser 识别出一个关系符和另一个 simple-selecotr ,那么修改之前创建 simple-selecotr, 创建组合关系符。 4、循环3步直至碰到逗号或者左大括号。...如果碰到左大括号,那么跳转至6步。 6、识别属性名称,将属性名称 hash 值压入解释器堆栈。...并将 CSSProperty 对象存入 CSSParser 成员变量m_parsedProperties 。 9、如果识别处属性名称,那么转至6步。如果识别大括号,那么转至10步。

49120

你真懂 CSS 吗?

试想一下,如果采用从左至方式读取 CSS 规则,那么大多数规则读到最后(最右)才会发现是匹配,这样会做费时耗能,最后有很多都是无用;而如果采取从向左方式,那么只要发现最右边选择器匹配,就可以直接舍弃了...CSSParser 识别出一个关系符和另一个 simple-selecotr ,那么修改之前创建 simple-selecotr, 创建组合关系符。 循环3步直至碰到逗号或者左大括号。...如果碰到左大括号,那么跳转至6步。 识别属性名称,将属性名称 hash 值压入解释器堆栈。...并将 CSSProperty 对象存入 CSSParser 成员变量m_parsedProperties 。 如果识别处属性名称,那么转至6步。如果识别大括号,那么转至10步。...该共享element不能有id属性且CSS还有该idStyleRule.哪怕该StyleRule与Element匹配

75210

初级程序员需要知道基本代码规范

如果是大括号内为空,则简洁地写成{}即可,不需要换行;如果是非空代码块则: 1) 左大括号前不换行。 2) 左大括号后换行。 3大括号前换行。...4) 大括号后还有 else 等代码则不换行;表示终止大括号后必须换行。 2.【强制】 左小括号和字符之间不出现空格;同样,括号和字符之间也不出现空格。详见 5 条下方正例提示。...("world"); // 大括号前换行,大括号后有 else,不用换行 } else { System.out.println("ok"); //...在大括号后直接结束,则必须换行 } } 6....2) 不允许修改引用域对象,如:POJO 类域变量。 3) 不允许被重写方法,如:POJO 类 setter 方法。 4) 不允许运行过程重新赋值局部变量。

75020

数据结构(7)栈应用——括号匹配问题

应用——括号匹配问题 什么是括号匹配问题 顾名思义就是把括号组起来,左小括号括号,左括号括号,左大括号大括号,最理想情况下是匹配成功,即例如以下括号排列: ( {...[ ] } ) 和栈关系 了解什么是括号匹配之后,再来聊聊它和栈关系。...我们知道栈特性是后进先出,那如果我们这样:把已知括号压入栈,每有一个括号,就和栈顶元素匹配,如果匹配成功就pop出栈顶元素,这样就把括号匹配问题变为了熟悉入栈,出栈操作。...='['){ printf("括号匹配失败\n"); return false; } if...='{'){ printf("大括号匹配失败\n"); return false; } }

49510

阿里Java编程规约【三】代码格式

【强制】如果大括号内为空,简洁地写成{}即可,大括号中间无需换行和空格;如果是非空代码块,则: 1)左大括号前不换行。 2)左大括号后换行。 3大括号前换行。...4)大括号后还有 else 等代码则不换行;表示终止大括号后必须换行。 2. 【强制】左小括号和右边相邻字符之间不需要空格;括号和左边相邻字符之间也不需要空格;而左大 括号前需要加空格。...详见 5 条下方正例提示。 反例:if(空格 a == b 空格) 3. 【强制】if / for / while / switch / do 等保留字与左右括号之间都必须加空格。 4....if (flag == 1) { System.out.println("world"); // 大括号前换行,大括号后有 else,不用换行 } else...【推荐】单个方法总行数超过 80 行。 说明:除注释之外方法签名、左右大括号、方法内代码、空行、回车及任何不可见字符总行数超过 80 行。

87310
领券