精华内容
下载资源
问答
  • 正则括号()的作用——分组 var str = "abc"; var reg = /(a)(b)(c)/; console.log(str.match(reg)); 结果如下: 注意:match方法,若传入的正则是全局匹配,返回值不会返回子项的匹配结果。 var str = ...

    匹配子项

    子项:整体的正则表达式可以看做父亲,第一个小括号就是第一个子项,以此类推……

    正则中小括号()的作用——分组

    	var str = "abc";
        var reg = /(a)(b)(c)/;
        console.log(str.match(reg));   
    

    结果如下:
    在这里插入图片描述
    注意:match方法中,若传入的正则是全局匹配,返回值不会返回子项的匹配结果。

    	var str = "abc";
        var reg = /(a)(b)(c)/g;	//	使用全局匹配
        console.log(str.match(reg));   //	结果["abc"]
    

    replace中的匹配子项:

    var str = "2020-01-02";
        var reg = /(\d+)-/g;
        str.replace(reg,function (s0,s1,s2) {
            /*
             * 规定写法:
             * 第一个参数输出的内容是正则整体匹配结果
             * 从第二个参数起,有多少子项都可以打出来,子项和参数要一一对应
             * 子项打印完了之后,后面的参数就是匹配的位置
             */
            console.log(s0,s1,s2);
        });
    

    结果:
    在这里插入图片描述
    子项(子模式)的作用:

    ​ 1 当正则比较复杂的时候,可以用()来分组。

    ​ 2 当需要使用到整体中部分内容的时候,可以用()来分组,并且得到分组中的内容。


    正则中中括号[]的作用

    ​ 1 中括号表示一个整体,括号中的字符属于或者关系,匹配字符串时,只从中挑选一个来做匹配。

    	var str = "abfg";
        var str2 = "abcfg";
        var str3 = "abefg";
        var reg = /ab[cde]fg/;
        console.log(reg.test(str));     //false
        console.log(reg.test(str2));    //true
        console.log(reg.test(str3));    //true
    

    ​ 2 中括号中可以给范围[0-9][a-z][A-Z]

    	var str4 = "5s";
        var reg2 = /[0-9][a-z]/;
        console.log(reg2.test(str4));   //true
    

    ​ 3 中括号中可以排除一些东西

    	var str5 = "a";
        var reg3 = /[^a-z]/;	//^符号表示非(除了)
        console.log(reg3.test(str5));   //false	
    

    正则中大括号{}的作用

    ​ {1,5}——出现1到5次

    ​ {2,}——大于2次

    ​ {3}——等于3次

    展开全文
  • python中括号

    千次阅读 2020-12-01 08:53:30
    遍历字符串,将属于开括号集合的括号加入列表,当遇上一个闭括号的时候计算该闭括号在闭括号列表的索引与当前列表最后一个开括号在开括号列表的索引是否一致,一致则继续,否则直接结束,输出错误主要是在...

    广告关闭

    腾讯云11.11云上盛惠 ,精选热门产品助力上云,云服务器首年88元起,买的越多返的越多,最高返5000元!

    遍历字符串,将属于开括号集合的括号加入到列表中,当遇上一个闭括号的时候计算该闭括号在闭括号列表中的索引与当前列表最后一个开括号在开括号列表中的索引是否一致,一致则继续,否则直接结束,输出错误主要是在长度很大的时候可以尽快判断一些比较明显的错误的模式,节省时间#! usrbinenv python# encoding:utf-8 ...

    在python语言中最常见的括号有三种,分别是:小括号()、中括号:代表list列表数据类型,列表是一种可变序列。 创建方法既简单又特别。 3、python中的花括号{}:代表dict字典数据类型,字典是python中唯一内建的映射类型。 字典中的值没有特殊的顺序,但都是存储在一个特定的键(key)下。 键可以是数字、字符串甚至...

    我有一个示例字符串 我只想要价值cus_y4o9qmezaugtnw而不是card。 我怎样才能以最简单的方式在python中完成它?...

    我正在尝试使用regex查找括号中的所有数字,例如,使用此输入:po = 19 and tr = 12 and cd not in (23, 45, 98, 34, 18) 我要这个: 试过这个:pattern = re.compile(r((d+)))final =list(pattern.findall(po = 19 and tr = 12 and cd not in (23, 45, 98, 34, 18)))但它只返回空列表...

    版权声明:本文为博主原创文章,遵循 cc 4.0 by-sa 版权协议,转载请附上原文出处链接和本声明。 本文链接:https:blog.csdn.netweixin_36670529articledetails101293856 先来定义两个列表:liststr = listnum = 这两个列表都可以看懂吧,一个字符串组成的列表,一个数字组成的列表中括号 listnum = print(liststr) #...

    当我运行以下内容时:table = cfg_pre + _ + cfg_tblcheck_data = select count(*) from x wheretable_nm = {}.format(table) 我得到以下内容:select count(*) from x where table_nm = abc_123 我需要的是:select count(*) from x where table_nm = abc_123 否则,sql将不会执行。 怎么解决?...

    我有一个包含许多数组的列表。 我就是这样得到名单的: coef = ]), array(]), array(]), array(])] 投入dataframe :azone = pd.dataframe( {zone: zone, coef: coef }) zone coef0 1 ]1 2 ]我想知道是否有办法去掉括号...

    在写 python 代码时,小括号必定是天天跟我们打交道的符号。 无论是函数还是类或是运算优先级都会涉及到大量的小括号。 今天我们来讲讲小括号不为人知的另外两种用法:优化单行字符串的显示我有一行非常长的单行字符串,如果放在一行,看起来非常不方便,如下图所示。? 但是,如果我使用三引号分行显示,那么就会引入...

    我有表格的行{},{},{},... {}。卷曲对的数量是可变的。 我希望在字符串列表中包含居首字母之间的内容。 例子: 输入:{a:b,c:d} 输出: ---- 输入:{a:b,c:d},{e:f,g:h} 输出:最好的方法是什么?...

    鉴于列表通常包含多个元素,给列表指定一个表示复数的名称(如letters、digits或names)是个不错的主意。 在python中,用方括号()来表示列表,并用逗号来分隔其中的元素。 下面是一个简单的列表表示例,这个列表包含几种自行车:bicycles.pybicycle = print(bicycles)如果你让python将列表打印出来,python将打印列表的...

    尽管python在function programming中有着其他语言难以企及的的优势,但是我们也不要忘了python也是一门oo语言哦。 因此我们关注python在fp上的优势的同时,还得了解一下python在oo方面的特性。 要讨论python的oo特性,了解python中的class自然是首当其冲了。 在python中定义class和创建对象实例都很简单,具体代码...

    在python#number0#中,以下两项都将执行相同的操作 print(hello, world!) # prints hello, world! print hello, world! # prints hello, world! 然而,以下内容不会 print(hello, world!) # prints the tuple:(hello, world!) print hello, world! # prints the words hello, world! 在python3.x中print这是强制性的...

    不仅是各行代码的作用,还有代码背后更宏大的概念。 了解背后的概念可培养逻辑思维,让你能够通过编写程序来解决遇到的几乎任何问题。 随着面临的挑战日益严峻,类还能让你与合作的其他程序员更轻松。 ----1. 创建和使用类使用类几乎可以模拟任何东西。 根据约定,在python中,首字母大写的名称指的是类。 这个类定义...

    初学python时,有很多定义都比较模糊,不是特别理解,导致一到使用就卡壳。 本文致力用最简洁的语言、最清晰的例子,跟你一起理解python中的集合函数。 一、什么是集合? 高中的时候我们就学过集合,python中的集合与之概念类似,又有不同。 python中的集合专门用于存储信息,存储的元素无序且不能重复,它用一对花...

    我是一个完全盲目的程序员,他想学习python。 不幸的是,代码块以不同级别的缩进表示的事实是一个主要的绊脚石。 我想知道是否有可用的工具可以使用花括号或其他代码块分隔符编写代码,然后将该格式转换为python解释器可以使用的正确缩进的表示形式?...

    我是一个想学习python的入门程序员。 但代码块是用不同的缩进级别表示的。 我想知道是否有可用的工具可以让我使用大括号或其他代码块分隔符编写代码,然后将该格式转换为python可以使用的适当缩进表示?...

    由于我的输出是99而不是,看起来:mylist = ]for x in mylist: print(x) out:我得到而不是99. 但是,如果我执行以下操作: in:mylist = ]for x,y in mylist:print(x) print(y) out:99100 上面的这个例子不需要在x,y周围附加一组产生无括号的答案。 我意识到这是一个奇怪且相当愚蠢的问题,因为我永远不会像这样构建...

    要创建简单的数据结构 可以使用元组 存储数据 使用圆括号创建元组address=(北京,上海,天津,广州,重庆)即使没有圆括号python通常也能识别元组number=1,2,34,4,5,6,7,8如果你要创建1个数值的元组 需要在后面添加一个,(逗号)num=1,#type=tuplenum=1#type=intnum=(1)#type=intnum=(1,)#type=tuple和列表一样也可以使用...

    lambda表达式 8.1 lambda表达式8.2 python内置的bif:filter函数8.3 python内置的bif:map函数9. 递归 9.1 递归求阶乘9.2 斐波那契数列9.3 汉诺塔1. 创建一个无参数函数def是创建函数的关键字,调用函数是函数名加上括号。 def myfirstfunction():print(这是创建的第一个函数) print(我表示很鸡冻。。。。。) #...

    python中的文档字符串:可以当作一种特殊的注释,简单的说明可以使用单引号或双引号,较长的文字说明可以使用三引号变量定义:第一个字符只能是大小写字母或下划线,区分大小写运算符:(1)算术运算符:+ 、- 、* 、 、 、% 、**(2)比较运算符:< 、 、>= 、== 、! = 、(3)逻辑运算:and 、or数据类型:数字、字符串...

    展开全文
  • C/C++括号 {} 的作用 什么是函数 函数可以理解为 C/C++ 中一个一个的模块,可以完成一定的功能,一块一块的,有较强的独立性,可以相互调用。换句话说,一个函数里面可以调用 n 个函数,即大函数调用小函数,小...

    C/C++中花括号 {} 的作用

    什么是函数

    函数可以理解为 C/C++ 中一个一个的模块,可以完成一定的功能,一块一块的,有较强的独立性,可以相互调用。换句话说,一个函数里面可以调用 n 个函数,即大函数调用小函数,小函数又调用“小小”函数。这就是结构化程序设计,所以面向过程的语言又叫结构化语言。

    {}的作用

    由一个 {} 括起来的部分 就是我们提到的一块 , 单独的 { } 的内容在执行顺序上是从上至下的

    而需要理解它的重要原因是

    花括号可以看作是作用域标识符,表示某些变量的作用域,决定他们的生命周期:

    {
        int a=0;
        {
            int b=0;
            a=1;  //正确 , a的定义的一个{}中 ,即还在作用域中
        }
        b=1;    //错误,b的生命周期维持到上面的这个花括号处结束了,此时b已被销毁
    }
    

    从这里也可以清楚的理解局部变量的生命周期了,以避免这类编译问题 fatal error: use of undeclared identifier ‘xxxxxx’

    展开全文
  • shell中的括号(小括号,中括号,大括号) linux中的(),(()),[],[[]],{}的作用 博客转载自 http://www.cnblogs.com/yasmi/articles/5129571.html 一、小括号,园括号() 1、单小括号 () ①命令组。括号中的命令将会...

    shell中的括号(小括号,中括号,大括号) linux中的(),(()),[],[[]],{}的作用

    博客转载自 http://www.cnblogs.com/yasmi/articles/5129571.html

    一、小括号,园括号()

    1、单小括号 ()

    ①命令组。括号中的命令将会新开一个子shell顺序执行,所以括号中的变量不能够被脚本余下的部分使用。括号中多个命令之间用分号隔开,最后一个命令可以没有分号,各命令和括号之间不必有空格。
    ②命令替换。等同于`cmd`,shell扫描一遍命令行,发现了$(cmd)结构,便将$(cmd)中的cmd执行一次,得到其标准输出,再将此输出放到原来命令。有些shell不支持,如tcsh。
    ③用于初始化数组。如:array=(a b c d)
    

    2、双小括号 (( ))

    ①整数扩展。这种扩展计算是整数型的计算,不支持浮点型。((exp))结构扩展并计算一个算术表达式的值,如果表达式的结果为0,那么返回的退出状态码 为1,或者 是"假",而一个非零值的表达式所返回的退出状态码将为0,或者是"true"。若是逻辑判断,表达式exp为真则为1,假则为0。
    ②只要括号中的运算符、表达式符合C语言运算规则,都可用在$((exp))中,甚至是三目运算符。作不同进位(如二进制、八进制、十六进制)运算时,输出结果全都自动转化成了十进制。如:echo $((16#5f)) 结果为95 (16进位转十进制)
    ③单纯用 (( )) 也可重定义变量值,比如 a=5; ((a++)) 可将 $a 重定义为6
    ④双括号中的变量可以不使用$符号前缀。括号内支持多个表达式用逗号分开。
    
    [python] view plaincopy
    if ($i<5)  
    if [ $i -lt 5 ]  
    if [ $a -ne 1 -a $a != 2 ]  
    if [ $a -ne 1] && [ $a != 2 ]  
    if [[ $a != 1 && $a != 2 ]]  
       
    for i in $(seq 0 4);do echo $i;done  
    for i in `seq 0 4`;do echo $i;done  
    for ((i=0;i<5;i++));do echo $i;done  
    for i in {0..4};do echo $i;done  
    

    二)中括号,方括号[]

    1、单中括号 []

    ①bash 的内部命令,[和test是等同的。如果我们不用绝对路径指明,通常我们用的都是bash自带的命令。if/test结构中的左中括号是调用test的命 令标识,右中括号是关闭条件判断的。这个命令把它的参数作为比较表达式或者作为文件测试,并且根据比较的结果来返回一个退出状态码。if/test结构中 并不是必须右中括号,但是新版的Bash中要求必须这样。
    ②Test和[]中可用的比较运算符只有==和!=,两者都是用于字符串比较的,不可用于整数比较,整数比较只能使用-eq,-gt这种形式。无论是字符 串比较还是整数比较都不支持大于号小于号。如果实在想用,对于字符串比较可以使用转义形式,如果比较"ab"和"bc":[ ab \< bc ],结果为真,也就是返回状态为0。[ ]中的逻辑与和逻辑或使用-a 和-o 表示。
    ③字符范围。用作正则表达式的一部分,描述一个匹配的字符范围。作为test用途的中括号内不能使用正则。
    ④在一个array 结构的上下文中,中括号用来引用数组中每个元素的编号。
    

    2、双中括号[[ ]]

    ①[[是 bash 程序语言的关键字。并不是一个命令,[[ ]] 结构比[ ]结构更加通用。在[[和]]之间所有的字符都不会发生文件名扩展或者单词分割,但是会发生参数扩展和命令替换。
    ②支持字符串的模式匹配,使用=~操作符时甚至支持shell的正则表达式。字符串比较时可以把右边的作为一个模式,而不仅仅是一个字符串,比如[[ hello == hell? ]],结果为真。[[ ]] 中匹配字符串或通配符,不需要引号。
    ③使用[[ ... ]]条件判断结构,而不是[ ... ],能够防止脚本中的许多逻辑错误。比如,&&、||、<和> 操作符能够正常存在于[[ ]]条件判断结构中,但是如果出现在[ ]结构中的话,会报错。
    ④bash把双中括号中的表达式看作一个单独的元素,并返回一个退出状态码。
    

    三)大括号、花括号 {}

    1、常规用法。

    ①大括号拓展。(通配(globbing))将对大括号中的文件名做扩展。在大括号中,不允许有空白,除非这个空白被引用或转义。第一种:对大括号中的以 逗号分割的文件列表进行拓展。如 touch {a,b}.txt 结果为a.txt b.txt。第二种:对大括号中以点点(..)分割的顺序文件列表起拓展作用,如:touch {a..d}.txt 结果为a.txt b.txt c.txt d.txt
    
    [python] view plaincopy
    bogon:/home/bash # ls {ex1,ex2}.sh  
    ex1.sh  ex2.sh  
    bogon:/home/bash # ls {ex{1..3},ex4}.sh  
    ex1.sh  ex2.sh  ex3.sh  ex4.sh  
    bogon:/home/bash # ls {ex[1-3],ex4}.sh  
    ex1.sh  ex2.sh  ex3.sh  ex4.sh  
    
        ②代码块,又被称为内部组,这个结构事实上创建了一个匿名函数 。与小括号中的命令不同,大括号内的命令不会新开一个子shell运行,即脚本余下部分仍 可使用括号内变量。括号内的命令间用分号隔开,最后一个也必须有分号。{}的第一个命令和左括号之间必须要有一个空格。
    

    2)几种特殊的替换结构:

    ${var:-string},${var:+string},${var:=string},${var:?string}
         A,${var:-string}和${var:=string}:若变量var为空,则用在命令行中用string来替换${var:- string},否则变量var不为空时,则用变量var的值来替换${var:-string};对于${var:=string}的替换规则 和${var:-string}是一样的,所不同之处是${var:=string}若var为空时,用string替换${var:=string}的 同时,把string赋给变量var: ${var:=string}很常用的一种用法是,判断某个变量是否赋值,没有的话则给它赋上一个默认值。
         B. ${var:+string}的替换规则和上面的相反,即只有当var不是空的时候才替换成string,若var为空时则不替换或者说是替换成变量 var的值,即空值。(因为变量var此时为空,所以这两种说法是等价的) 
         C,${var:?string}替换规则为:若变量var不为空,则用变量var的值来替换${var:?string};若变量var为空,则把string输出到标准错误中,并从脚本中退出。我们可利用此特性来检查是否设置了变量的值。
         补充扩展:在上面这五种替换结构中string不一定是常值的,可用另外一个变量的值或是一种命令的输出。
    

    3)四种模式匹配替换结构:

    ${var%pattern},${var%%pattern},${var#pattern},${var##pattern}
         第一种模式:${variable%pattern},这种模式时,shell在variable中查找,看它是否一给的模式pattern结尾,如果是,就从命令行把variable中的内容去掉右边最短的匹配模式
         第二种模式: ${variable%%pattern},这种模式时,shell在variable中查找,看它是否一给的模式pattern结尾,如果是,就从命令行把variable中的内容去掉右边最长的匹配模式
         第三种模式:${variable#pattern} 这种模式时,shell在variable中查找,看它是否一给的模式pattern开始,如果是,就从命令行把variable中的内容去掉左边最短的匹配模式
         第四种模式: ${variable##pattern} 这种模式时,shell在variable中查找,看它是否一给的模式pattern结尾,如果是,就从命令行把variable中的内容去掉右边最长的匹配模式
         这四种模式中都不会改变variable的值,其中,只有在pattern中使用了*匹配符号时,%和%%,#和##才有区别。结构中的pattern 支持通配符,*表示零个或多个任意字符,?表示零个或一个任意字符,[...]表示匹配中括号里面的字符,[!...]表示不匹配中括号里面的字符
    [python] view plaincopy
    bogon:/home/bash # var=testcase  
    bogon:/home/bash # echo $var  
    testcase  
    bogon:/home/bash # echo ${var%s*e}  
    testca  
    bogon:/home/bash # echo $var  
    testcase  
    bogon:/home/bash # echo ${var%%s*e}  
    te  
    bogon:/home/bash # echo ${var#?e}  
    stcase  
    bogon:/home/bash # echo ${var##?e}  
    stcase  
    bogon:/home/bash # echo ${var##*e}  
      
    bogon:/home/bash # echo ${var##*s}  
    e  
    bogon:/home/bash # echo ${var##test}  
    case 
    

    ()

    命令组.在括号中的命令列表, 将会作为一个子shell来运行.
    在括号中的变量,由于是在子shell中,所以对于脚本剩下的部分是不可用的. 父进程, 也就是脚本本身, 将不能够读取在子进程中创建的变量, 也就是在子shell中创建的变量.
    (cmd1;cmd2;cmd3)

    初始化数组.
    Array=(element1 element2 element3)

    $(…)

    相当于...命令,返回括号中命令执行的结果

    let命令

    (( ))

    (( … ))结构可以用来计算并测试算术表达式的结果. 退出状态将会与[ … ]结构完全相反!还可应用到c风格的for,while循环语句,(( )) 中,所有的变量(加不加$无所谓)都是数值。

    ( ( . . . ) ) 结 构 的 表 达 式 是 C 风 格 的 表 达 式 , 其 返 回 的 结 果 是 表 达 式 值 , 其 中 变 量 引 用 可 不 用 ‘ ((...))结构的表达式是C风格的表达式,其返回的结果是表达式值,其中变量引用可不用‘ ((...))C’(当然也可以)

    for((…;…;…))
    do
    cmd
    done

    while ((…))
    do
    cmd
    done

    比较操作符

    <

    小于
    
    (("$a" < "$b"))
    

    <=

    小于等于
    
    (("$a" <= "$b"))
    
    大于
    
    (("$a" > "$b"))
    

    =

    大于等于
    
    (("$a" >= "$b"))
    

    (( 0 ))
    echo “Exit status of “(( 0 ))” is $?.” # 1

    (( 1 ))
    echo “Exit status of “(( 1 ))” is $?.” # 0

    (( 5 > 4 )) # 真
    echo “Exit status of “(( 5 > 4 ))” is $?.” # 0

    (( 5 > 9 )) # 假
    echo “Exit status of “(( 5 > 9 ))” is $?.” # 1

    (( 5 - 5 )) # 0
    echo “Exit status of “(( 5 - 5 ))” is $?.” # 1

    (( 5 / 4 )) # 除法也可以.
    echo “Exit status of “(( 5 / 4 ))” is $?.” # 0

    (( 1 / 2 )) # 除法的计算结果 < 1.
    echo “Exit status of “(( 1 / 2 ))” is $?.” # 截取之后的结果为 0.
    # 1

    (( 1 / 0 )) 2>/dev/null # 除数为0, 非法计算.

    echo “Exit status of “(( 1 / 0 ))” is $?.” # 1

    for ((a=1; a <= LIMIT ; a++)) # 双圆括号, 并且"LIMIT"变量前面没有" &quot; . d o e c h o − n &quot; &quot;. do echo -n &quot; ".doechon"a "
    done

    while (( a <= LIMIT )) # 双圆括号, 变量前边没有" &quot; . d o e c h o − n &quot; &quot;. do echo -n &quot; ".doechon"a "
    ((a += 1)) # let “a+=1”
    done

    a=2
    b= ( ( (( ((a4)) #a=2 b=8
    c=$((a
    3)) #a=2 c=6

    [ ]

    条件测试表达式放在[ ]中. 值得注意的是[是shell内建test命令的一部分, 并不是/usr/bin/test中的外部命令的一个链接.

    文件测试操作符(如果下面的条件成立将会返回真)

    -e

    文件存在(推荐用)
    

    -a

    文件存在(不推荐用)
    

    -f

    表示这个文件是一个一般文件(并不是目录或者设备文件)
    

    -s

    文件大小不为零
    

    -d

    表示这是一个目录
    

    -b

    表示这是一个块设备(软盘, 光驱, 等等.) 
    

    -c

    表示这是一个字符设备(键盘, modem, 声卡, 等等.)
    

    -p

    这个文件是一个管道
    

    -h

    这是一个符号链接
    

    -L

    这是一个符号链接
    

    -S

    表示这是一个socket
    

    -t

    文件(描述符)被关联到一个终端设备上
    
    这个测试选项一般被用来检测脚本中的stdin([ -t 0 ]) 或者stdout([ -t 1 ])是否来自于一个终端. 
    

    -r

    文件是否具有可读权限(指的是正在运行这个测试命令的用户是否具有读权限)
    

    -w

    文件是否具有可写权限(指的是正在运行这个测试命令的用户是否具有写权限)
    

    -x

    文件是否具有可执行权限(指的是正在运行这个测试命令的用户是否具有可执行权限)
    

    -g

    set-group-id(sgid)标记被设置到文件或目录上
    
    如果目录具有sgid标记的话, 那么在这个目录下所创建的文件将属于拥有这个目录的用户组, 而不必是创建这个文件的用户组. 这个特性对于在一个工作组中共享目录非常有用. 
    

    -u

    set-user-id (suid)标记被设置到文件上
    
    如果一个root用户所拥有的二进制可执行文件设置了set-user-id标记位的话, 那么普通用户也会以root权限来运行这个文件. [1] 这对于需要访问系统硬件的执行程序(比如pppd和cdrecord)非常有用. 如果没有suid标志的话, 这些二进制执行程序是不能够被非root用户调用的.
    
                  -rwsr-xr-t    1 root       178236 Oct  2  2000 /usr/sbin/pppd
                  
    
    对于设置了suid标志的文件, 在它的权限列中将会以s表示. 
    

    -k

    设置粘贴位
    
    对于"粘贴位"的一般了解, save-text-mode标志是一个文件权限的特殊类型. 如果文件设置了这个标志, 那么这个文件将会被保存到缓存中, 这样可以提高访问速度. [2] 粘贴位如果设置在目录中, 那么它将限制写权限. 对于设置了粘贴位的文件或目录, 在它们的权限标记列中将会显示t.
    
                  drwxrwxrwt    7 root         1024 May 19 21:26 tmp/
                  
    如果用户并不拥有这个设置了粘贴位的目录, 但是他在这个目录下具有写权限, 那么这个用户只能在这个目录下删除自己所拥有的文件. 这将有效的防止用户在一个公共目录中不慎覆盖或者删除别人的文件. 比如说/tmp目录. (当然, 目录的所有者或者root用户可以随意删除或重命名其中的文件.) 
    

    -O

    判断你是否是文件的拥有者
    

    -G

    文件的group-id是否与你的相同
    

    -N

    从文件上一次被读取到现在为止, 文件是否被修改过
    

    f1 -nt f2

    文件f1比文件f2新
    

    f1 -ot f2

    文件f1比文件f2旧
    

    f1 -ef f2

    文件f1和文件f2是相同文件的硬链接
    

    !

    "非" -- 反转上边所有测试的结果(如果没给出条件, 那么返回真).
    

    比较操作符

    整数比较

    -eq

    等于
    

    -ne

    不等于
    

    -gt

    大于
    

    -ge

    大于等于
    

    -lt

    小于
    

    -le

    小于等于
    

    字符串比较

    =

    等于
    

    ==

    等于,与=等价.(==比较操作符在双中括号对和单中括号对中的行为是不同的)
    
      [[ $a == z* ]]    # 如果$a以"z"开头(模式匹配)那么结果将为真
      [[ $a == "z*" ]]  # 如果$a与z*相等(就是字面意思完全一样), 那么结果为真.
      
      [ $a == z* ]      # 文件扩展匹配(file globbing)和单词分割有效. 
      [ "$a" == "z*" ]  # 如果$a与z*相等(就是字面意思完全一样), 那么结果为真. 
    

    !=

    不等号(这个操作符将在[[ ... ]]结构中使用模式匹配)
    

    <

    小于, 按照ASCII字符进行排序(注意"<"使用在[ ]结构中的时候需要被转义) 
    
    大于, 按照ASCII字符进行排序(注意">"使用在[ ]结构中的时候需要被转义)
    

    -z

    字符串为"null", 意思就是字符串长度为零
    

    -n

    字符串不为"null".
    

    -a

    逻辑与
    

    -o

    逻辑或
    

    {xxx,yyy,zzz,…}

    大括号扩展.

    echo {1..20}
    1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
    
    cat {file1,file2,file3} > combined_file
    # 把file1, file2, file3连接在一起, 并且重定向到combined_file中.
    
    cp file22.{txt,backup}
    # 拷贝"file22.txt"到"file22.backup"中
    

    在大括号中, 不允许有空白, 除非这个空白被引用或转义.

    echo {file1,file2}\ :{\ A," B",' C'}
    
    file1 : A file1 : B file1 : C file2 : A file2 : B file2 : C
    

    代码块

    这个结构事实上创建了一个匿名函数(一个没有名字的函数). 然而, 与"标准"函数不同的是, 在其中声明的变量,对于脚本其他部分的代码来说还是可见的(除了用declare,typeset命令声明的变量)

    ()会开启一个新的子shell,{}不会开启一个新的子shell

    (())常用于算术运算比较,[[]]常用于字符串的比较.

    $()返回括号中命令执行的结果

    $(())返回的结果是括号中表达式值

    ${ }参数替换与扩展

    参数替换

    ${var}
    ${var}=$var
    

    ${var:-default} ${var-default}
    如果var未set,那么就是用default.两者之间不同只有当var为空变量时,前者为default,后者为空.

    ${var:=default} ${var=default}
    如果var未set,那么就设置default.两者之间不同只有当var为空变量时,前者设置为default,后者设置为空.

    ${var:+default} ${var+default}
    如果var被set,就是用default.未set,就使用null字符串.两者之间不同只有当var为空变量时,前者为null字符串,后者为default.

    上面三种参数替换中,第二种使用后变量的值被改变.

    参数替换扩展

    ${#var} ${#array}
    字符串长度或数组第一个元素的字符串长度
    例外:
    KaTeX parse error: Expected '}', got '#' at position 2: {#̲*}、{#@}指位置参数的个数.
    KaTeX parse error: Expected '}', got '#' at position 2: {#̲array},[#array[@]}指数组元素的个数

    ${var#pattern} ${var##pattern}
    从var开头删除最近或最远匹配pattern的子串.

    ${var%pattern} ${var%%pattern}
    从var结尾删除最近或最远匹配pattern的子串.

    ${var:pos}
    变量var从位置pos开始扩展.

    ${var:pos:len}
    从位置pos开始,并扩展len长度个字符

    ${var/pattern/replacement} ${var//pattern/replacement}
    使用replacement来替换var中的第一个或所有pattern的匹配.

    ${var/#pattern/replacement}
    如果var的前缀匹配到了pattern,那么就用replacement来替换pattern.

    ${var/%pattern/replacement}
    如果var的后缀匹配到了pattern,那么就用replacement来替换pattern.

    ${!varprefix*} ${!varprefix@}
    前边所有声明过的,以varprefix为前缀的变量名.

    [[]]就是条件表达式,在bash中,字符串比较用 > < != == <= >= 只是在[]中 < >需要转义;对于数值比较.用 -lt -le -eq -ge -gt 来比较,与[[]]中表达不太一样,在[ ] 中的 < > 需要用转义 < >,如果有多个表达式,在[[ ]] 中用 && || 来组合,而[] 中是用 -a -o 来组合

    1.() 符号

    a.()会开启一个新的子shell,{}不会开启一个新的子shell
      b.在括号中的变量,由于是在子shell中,所以对于脚本剩下的部分是不可用的. 父进程, 也就是脚本本身, 将不能够读取在子进程中创建的变量, 也就是在子shell中创建的变量.

    c.$(…) 执行括号的内容,并返回结果,相当于...命令
      d.(())常用于算术运算比较,[[]]常用于字符串的比较.

    2.[ ]符号

    a.条件测试表达式放在[ ]中. 值得注意的是[是shell内建test命令的一部分, 并不是/usr/bin/test中的外部命令的一个链接.

    b.文件存在 -e ,-a

    c.表示这个文件是一个一般文件 -f

    d.文件大小不为零 -s

    e.表示这是一个目录 -d

    f.表示这是一个块设备(软盘, 光驱, 等等.) -b

    g.表示这是一个字符设备(键盘, modem, 声卡, 等等.) -c

    h.这个文件是一个管道 -p
      i.这是一个符号链接 -h
      j.这是一个符号链接-L

    k.-S 表示这是一个socket
      l.-t 文件(描述符)被关联到一个终端设备上,这个测试选项一般被用来检测脚本中的stdin([ -t 0 ]) 或者stdout([ -t 1 ])是否来自于一个终端.
      m.-r 文件是否具有可读权限(指的是正在运行这个测试命令的用户是否具有读权限)
      n.-w 文件是否具有可写权限(指的是正在运行这个测试命令的用户是否具有写权限)
      o. -x 文件是否具有可执行权限(指的是正在运行这个测试命令的用户是否具有可执行权限)

    3.{}符号

    ${ }参数替换与扩展

    分类: ubuntu-命令

    展开全文
  • C# 中的中括号([])的作用

    千次阅读 2013-07-18 23:41:00
    当编译器检测到一个类是特性的时候,它会识别出其中的信息并存放在元数据当中,仅此而已,编译器并不关心特性说了些什么,特性也不会对编译器起到任何作用,正如航空公司并不关心每个箱子要去哪里,只有箱子的主人和...
  • Linux—Shell 各种括号作用

    千次阅读 2021-09-28 08:47:00
    双小括号二、中括号1. 单中括号2. 双中括号三、大括号1. 用法2. 特殊的替换结构3. 四种模式匹配替换结构4. 字符串提取和替换四、符号$后的括号五、使用总结 引言 Linux 中 Shell 的功能是非常强大的,但是有时候...
  • Linux中括号的使用

    千次阅读 2017-08-03 20:47:08
    一、Linux、括号
  • python的print字符串前面加f表示格式化字符串,加f后可以在字符串里面使用用花括号括起来的变量和表达式,如果字符串里面没有表达式,那么前面加不加f输出应该都一样. print(f'There are {data_train.isnull().any...
  • 而且()还用于括正则表达式的小组,比如:^(a|b).$匹配以a或b开头的任何字符串 另外,(?:pattern)是一个非捕获匹配,就是匹配但不捕获字符串 (?&lt;=pattern)逆序肯定环视,表示所在位置左侧能够匹配pattern (?...
  • 括号中的命令将会新开一个子shell顺序执行,所以括号中的变量不能够被脚本余下的部分使用。括号中多个命令之间用分号隔开,最后一个命令可以没有分号,各命令和括号之间不必有空格。 ②命令...
  • 但除此之外,其实 Bash 还有很多可以起到胶水作用的标点符号,例如点号(.)、逗号(,)、括号(<>)、引号(”)之类。下面我们就来看一下可以用来进行数据转换和转移的尖括号(<>)。 转移数据 如果你对...
  • js的花括号-块级作用

    千次阅读 2019-02-12 18:04:00
    js中什么叫做块作用域呢 大家看到有一些将代码块包裹在花括号里,像这样 { var a = 10 console.log(10) } var a = 10 console.log(10) 上面写法其实就是块级,和正常写法没什么两样 ----------------------...
  • Linux括号用法

    千次阅读 2020-01-02 15:48:26
    一、Linux的小括号(也叫圆括号)“( )”的用法 1.单小括号() 1)数组赋值或者初始化数组; 2)子Shell赋值:小括号中的内容会开启一个子shell独立运行;括号中以分号连接,最后一个命令不需要;各命令和括号...
  • 此错误消息意味着您正在尝试使用Python 3跟踪示例或运行使用Python 2打印语句的程序:print "Hello world"上面的语句在Python 3起作用。在Python 3,您需要在要打印的值周围添加括号:print("Hello world")...
  • 另开命令组——小括号中的内容会开启一个子shell独立运行;括号中以分号连接,最后一个命令不需要;各命令和括号无空格 得到命令输出——a=$(command), 等同于a=$`command`,得到命令输出传递给变量a 初始化数组——...
  • shell脚本各种括号的区别以及用法

    万次阅读 2018-08-19 14:55:33
    最近学了shell脚本编程,觉得脚本的不同括号有不同的用处,以及有些括号的格式也有特殊要求,下面我就总结一下各种括号的用法。 一、小括号();双小括号(())  1、单小括号 ()  1:命令替换。等同于`comm`,...
  • 括号起到什么作用? (1, 2, 3, alert )(“Amazing!”); // 这里就更好玩了,居然可以直接调用alert ;经过测试,全局函数都可以通过这样调用。 下面是关于 方括号[] 的疑问: 在JS,[]几乎就和数组画上了等号...
  • ”上面的语句在Python 3起作用 . 在Python 3,您需要在要打印的值周围添加括号:print("Hello, World!")“SyntaxError:调用'print'时缺少括号”是Python 3.4.2添加的新错误消息,主要是为了帮助那些在运行...
  • shell中的括号(小括号,中括号,大括号)

    万次阅读 多人点赞 2013-09-16 17:39:20
    括号中的命令将会新开一个子shell顺序执行,所以括号中的变量不能够被脚本余下的部分使用。括号中多个命令之间用分号隔开,最后一个命令可以没有分号,各命令和括号之间不必有空格。  ②命令替换。等同于`cmd`,...
  • 在PHP,大括号“{}”的意义与作用

    千次阅读 2018-05-23 16:30:06
    在PHP,大括号“{}”可以起到如下作用:将多个独立语句合并为一个复合语句,例如 if ... else ...经常如此使用在变量间接引用进行定界,避免歧义。例如 ${$my_var[8]}与${$my_var}[8]的区分用于指示字符串变量...
  • )括号里的内容有什么做用研究发现 当一个接口只有一个实现类,括号里的内容是没有意义的,只有在有多个实现类的时候才会起到作用.比如在一个Student实现类上加上@Service("student"),括号里面就是给实例化...
  • Shell脚本各种括号用法

    千次阅读 2017-08-28 20:15:16
    一、小括号,圆括号() 1、单小括号 () ①命令组。括号中的命令将会新开一个子...等同于`cmd`,shell扫描一遍命令行,发现了(cmd)结构,便将(cmd)结构,便将(cmd)的cmd执行一次,得到其标准输出,再将此输出放
  • 在PHP,大括号“{}”可以起到如下作用: 1、将多个独立语句合并为一个复合语句,例如 if … else …经常如此使用 2、在变量间接引用进行定界,避免歧义。例如 ${$my_var[8]}与${$my_var}[8]的区分 3、用于指示...
  • @service(xxx)括号里的内容的作用

    千次阅读 2018-12-05 12:48:31
    当一个接口只有一个实现类,括号里的内容是没有意义的,只有在有多个实现类的时候才会起到作用. 比如在一个Student实现类上加上@Service("student"),括号里面就是给实例化后的Student对象取个名字。。。 这...
  • shell各种括号作用()、(())、[]、[[]]、{}

    万次阅读 多人点赞 2014-09-26 11:13:40
    括号中的命令将会新开一个子shell顺序执行,所以括号中的变量不能够被脚本余下的部分使用。括号中多个命令之间用分号隔开,最后一个命令可以没有分号,各命令和括号之间不必有空格。 ②命令替换。等同于`cmd`,...
  • /**** 功能描述: 去掉括号里面的内容** @param: [context]* @return: java.lang.String* @date: 2018/7/12 0012 11:18*/private String ClearBracket(String context) {// String bracket = context.substring...
  • linux三种括号、三种引号的区别

    千次阅读 2019-05-10 12:27:34
    我对linux不加引号与三种引号的作用的理解,对linux三种括号作用的理解。
  • 给定字符串 "OUTPUT/FA(CIR1),TA(POS1__X),TA(POS1__Y),TA(POS1__Z),TA(POS1__D)" 现在需要取得括号中的内容,如 CIR1、POS1__X、POS1__Y 和POS1__Z,如果我们使用字符串操作,肯定是可以取得,但是如果类似的操作...
  • package StaticTest; public class Test { ...2.静态代码块的表示采用一对花括号: ... 2.3 它的位置放在方法内: 不为静态,此时并不会任何作用只是能够让程序看起来结构更加完整。
  • Bash各种括号的使用

    千次阅读 2016-04-23 15:11:24
    Bash中有各种括号,包括单小括号,双小括号,单中括号,双中括号,单大括号。而且它们之间很容易混淆,所以很有必要总结一下它们的用法。 1. ()的用法 单个小括号用来创建一个子shell。例如: $ pwd /home/xfeng $ ...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 186,817
精华内容 74,726
关键字:

中括号能起到什么作用