精华内容
下载资源
问答
  • 参考:https://www.cnblogs.com/itxdm/p/something_of_shellscirpt.htmlhttps://www.cnblogs.com/hanggegege/p/5928870.htmlhttps://blog.csdn.net/ztf312/article/details/52317571技巧小结:1、单小括号( ):shell...

    参考:https://www.cnblogs.com/itxdm/p/something_of_shellscirpt.html

    https://www.cnblogs.com/hanggegege/p/5928870.html

    https://blog.csdn.net/ztf312/article/details/52317571

    简要描述:

    1、单小括号( ):把括号内的命令在另一个shell执行,并把结果返回左右不留空格,一般要带前缀 $

      双小括号(( )) :整数比较、四则运算,括住的内容,完全符合C语言语法,一般要带前缀 $

    2、单中括号[ ]:类似于测试命令(数字、字符串、文件三者的判断),左右必须留空格,特殊字符需用转义符\,一般用于if语句

      双中括号[[ ]]:功能类似于单中括号,区别在于特殊字符无需转义,而且支持>、<等符号判断

    3、单大括号{ }:快速替换

    4、单反引``命令替换


    一、小括号

    1、单层小括号( ),执行shell命令并取得输出,例如:var=$(ls)、echo $(ls)

    2、双层小括号(( )),内部可以

    echo $((3+2))  输出5
    echo $((3>2))  输出1
    echo $((25<3 ? 2:3))   输出3
    echo $var 
    echo $((var=2+3))   输出5
    echo $var 
    echo $((var++)) 输出5,显然符合c语言特性
    echo $var  输出6

    二、中括号,[ ]、[[ ]]都类似于test命令,一般用于if语句。http://www.runoob.com/linux/linux-shell-test.html

    单双中括号的共同点:

    (1) 功能都是用于数字、字符串、文件三者的判断,字符串比较只能用==、!=、-z、-n,数字比较用-eq、-gt等,文件判断用-e -d等,取非用!,详情查阅test参考链接

    (2) 两者左右两边都要留空格、运算符两边都要留空格!!!

    两者的区别:

    (1) 转义方面:若[ ]中出现特殊字符如( ),则左右小括号都要转义,写成\(\);而[[ ]]无需转义

    (2) 判断运算符、逻辑运算符,分别支持哪些?(部分如下)

    [ ]支持-eq-gt-ge-a-o
    [[ ]]支持==和-eq>和-gt

    -ge、 不支持>=

    &&||

    1、单中括号 [ ]

    a=3
    str="ab"
    filePath=./hello.c   #右值的单双引号可用可不用
    if [ 3 -eq $a ]; then echo yes; fi  #数字判断:输出yes
    if [ $str!="cd" ]; then echo yes; fi  #字符串判断:输出yes
    if [ -e filePath ]; then echo yes; fi  #文件判断:若存在则输出yes
    

    2、双中括号[[ ]]

    if [[ 3 > 2 && 3 < 2 ]]; then echo yes; fi  #数字比较示例:输出yes




    变量调用:

        方法(1):${var}

        方法(2):$var

    命令调用:

        方法(1):`COMMAND`

        方法(2):$(COMMAND)

    测试表达式:

        方法(1):[ expression ]

        方法(2):[[ expression ]]

        方法(3):test expression

    算术运算

        方法(1):let 算术运算表达式

                    let C=$A+$B 这里变量A和B前面的$可以省略

        方法(2):$[算术运算表达式]

                    C=$[$A+$B]

        方法(3):$((算术运算表达式))

                    C=$(($A+$B))    #参考双( )的用法

        方法(4):expr 算术运算表达式,表达式中各操作数及运算符之间要有空格,而且要使用命令引用,遇到乘法的*号还要转义

                    C=`expr $A + $B`    #参考单反引号的用法

                    或C=$(expr $A + $B)   #参考单( )的用法

        方法(5):expr $[算术运算表达式],遇到乘法*号不用转义。

    展开全文
  • 2、双括号语法&&初见指令

    千次阅读 2020-08-08 11:23:28
    一、双括号语法,也叫mustache语法,括号里面可以直接写变量,也可以写算数运算,也可以放三目运算符,数组字符串方法。 运行结果: 二、指令,以v-开头,放入标签中使用,有些指令后面可能没有表达式,每个指令...

    一、双括号语法,也叫mustache语法,放在标签内部才有用。
    括号里面可以直接写变量,也可以写算数运算,也可以放三目运算符,数组字符串方法。

        在这里插入图片描述
    运行结果:
        在这里插入图片描述

    二、指令,以v-开头,放入标签作为属性使用,有些指令后面可能没有表达式,每个指令都有特定功能。
    例如:<p v-xxx="js表达式或者变量"></p>

    下面列举几个不常用的指令:
    1、v-once:表示该元素在页面只渲染一次,页面内容不随着数据改变而改变。
        在这里插入图片描述
    控制台修改变量值后,页面内容不会发生改变:
        在这里插入图片描述
    2、v-html=“xxx”:跟innerHTML一样,将xxx以html标签的形式解析。
        在这里插入图片描述
    运行结果:
        在这里插入图片描述
    3、v-pre:不解析标签里面内容
        在这里插入图片描述
    运行结果:
        在这里插入图片描述

    展开全文
  • 编译器就会报错:No viable conversion from 'int' to 'std::pair' 但是如果使用双层括号,就像这样: array, int>, 8> dirs = {{ {-1, -1}, {-1, 0}, {-1, 1}, {0, -1}, {0, 1}, {1, -1}, {1, 0}, {1, 1}, }};...

    对于array的初始化我们可以使用列表初始化:

    array<int, 8> test = {
            1,
            2,
            3,
            4,
            5,
            6,
            7,
            8
    };
    

    但是当我们不再使用简单的内置类型array时:

    array<pair<int, int>, 8> dirs = {
        {-1, -1},
        {-1, 0},
        {-1, 1},
        {0, -1},
        {0, 1},
        {1, -1},
        {1, 0},
        {1, 1},
    };
    
    

    编译器就会报错:No viable conversion from 'int' to 'std::pair<int, int>'
    但是如果使用双层大括号,就像这样:

    array<pair<int, int>, 8> dirs = {{
        {-1, -1},
        {-1, 0},
        {-1, 1},
        {0, -1},
        {0, 1},
        {1, -1},
        {1, 0},
        {1, 1},
    }};
    

    编译器就不会报错,是不是很神奇。
    经过在网上查阅资料,看到stackoverflow上一个人解释说,array的原型是结构体中的数组:

    template<typename T, int size>
    struct std::array
    {
      T a[size];
    };
    

    因此,产生了需要双大括号的问题:最外面的大括号是给结构体初始化用的,里面的大括号是给数组初始化用的。
    但是标准中并没有提到这一点,因此这个可能是编译器的bug

    展开全文
  • Linux Shell编程--双括号

    2017-11-20 18:19:30
    linux shell (())双括号运算符 在刚开始学习inux shell脚本编程时候,对于它的 四则运算以及逻辑运算。估计很多朋友都感觉比较难以接受。特变逻辑运算符”[]”使用时候,必须保证运算符与算数 之间有空格。 四则...

    linux shell (())双括号运算符

    在刚开始学习inux shell脚本编程时候,对于它的 四则运算以及逻辑运算。估计很多朋友都感觉比较难以接受。特变逻辑运算符”[]”使用时候,必须保证运算符与算数 之间有空格。 四则运算也只能借助:let,expr等命令完成。 今天讲的双括号”(())”结构语句,就是对shell中算数及赋值运算的扩展。


    语法:

    ((表达式1,表达式2…))

    特点:

    1、在双括号结构中,所有表达式可以像c语言一样,如:a++,b--等。

    2、在双括号结构中,所有变量可以不加入:“$”符号前缀。

    3、双括号可以进行逻辑运算,四则运算

    4、双括号结构 扩展了for,while,if条件测试运算

    5、支持多个表达式运算,各个表达式之间用“,”分开

    • 扩展四则运算

    #!/bin/sh
     
    a=1;
    b=2;
    c=3;
     
    ((a=a+1));
    echo  $a;
     
    a=$((a+1,b++,c++));
    echo  $a,$b,$c

     

    运行结果:

    sh testsh.sh
    2
    3,3,4

    双括号结构之间支持多个表达式,然后加减乘除等c语言常用运算符都支持。如果双括号带:$,将获得表达式值,赋值给左边变量。

    • 扩展逻辑运算
    • #!/bin/sh
       
      a=1;
      b= "ab" ;
       
       
      echo  $((a>1?8:9));
       
      ((b!= "a" ))&& echo  "err2" ;
      ((a<2))&& echo  "ok" ;

       

      运行结果:

      sh testsh.sh
      9
      err2
      ok


    • 扩展流程控制语句(逻辑关系式)

    • #!/bin/sh
       
      num=100;
      total=0;
       
      for ((i=0;i<=num;i++));
      do
           ((total+=i));
      done
      echo  $total;
       
      total=0;
      i=0;
      while ((i<=num));
      do
           ((total+=i,i++));
      done
      echo  $total;
       
      if ((total>=5050)); then
           echo  "ok" ;
      fi

       

      运算结果:

      sh testsh.sh
      5050
      5050
      ok


    有了双括号运算符:[[]],[],test 逻辑运算,已经let,expr 都可以抛到一边了。
    展开全文
  • X=np.array([[1,2],[3,4]]) # 一个圆括号 一个方括号 得到结果X: [ [1 2] [3 4] ] 错误写法: X=np.array([1,2],[3,4]) # 只有一个圆括号 由列表生成array以下两种写法都可: x1=[1,2] X=np....
  • BASH 中单括号和双括号

    千次阅读 2013-08-26 11:28:31
     bash [ ] 单双括号 基本要素: Ø [ ] 两个符号左右都要有空格分隔 Ø 内部操作符与操作变量之间要有空格:如 [ “a” = “b” ] Ø 字符串比较中,> \ Ø [ ] 中字符串或者${}变量尽量使用"" 双引号...
  • C++中双括号初始化问题

    千次阅读 2020-04-02 15:12:29
    在刷题时用到了一个栈,网上参考了答案无意中发现了这个双大括号初始化的方法,查阅后发现java有这种用法,说其这本质上是匿名内部类加实例化代码块。但这边个跟类有什么关系…… 嗯……又想到明明之前用到栈的时候...
  • 今天在项目中Jsp中遇到使用双层嵌套${${}}的问题, 但这个${${}},语法上是不予许的。 后来苦寻解决办法,下面【这个代码段】这个方法是可以的,用requestScope、sessionScope等。。。 ${requestScope['...']} ...
  • shell--双括号

    2020-04-24 17:42:41
    shell双括号的作用可用运算符号注意事项 使用双括号可以进行算数运算,可以写类C语言的运算表达式。 a++ 或者 b-- 或者a+=1 或者a<b 或者a!=b if-then语法 if condition then commands fi if [ -d file ] then ...
  • 主要介绍了Javascript中中括号“[]”的多义性。需要的朋友可以过来参考下,希望对大家有所帮助
  • 有效括号字符串为空 ("")、"(" + A + “)” 或 A + B,其中 A 和 B 都是有效的括号字符串,+ 代表字符串的连接。例如,"","()","(())()" 和 “(()(()))” 都是有效的括号字符串。 如果有效字符串 S 非空,且不存在...
  • decltype的表达式如果加上括号(双层括号)则其返回的类型是引用,否则只有当表达式本身是引用的时候,返回值才是引用。 #include using namespace std; int main() { int i = 0; decltype ((i)) a = i; cout...
  • 10练习print()和双层for循环 用注释把每行代码作用写清楚 grid = [[".", ".", ".", ".", ".", "."], [".", "0", "0", ".", ".", "."], ["0", "0", "0", "0", ".", "."], ["0", "0", "0", "0", "0", "."], ...
  • 单中括号 data["column"]返回始终为shape(n,)的Pandas系列,也就是说,它没有列,总是只有一行。 双中括号 在data[["column"]]返回形状为(m,n)的Pandas数据帧 如果要在一个数据帧中有多个列,可以...
  • javascript 解析两层大括号 以下为脱敏后的数据: {"resp":true,"code":101,"time":"2021-08-16 09:50:26","data":{"uuid":"116978d2ac4b459d9c4fc54506afaa02","token":"1cbc9adeb87849f0a51359e7a450d33e",...
  • // 数组转字符串(逗号分隔,首尾加大括号) System.out.println(str2); // {0,1,2,3,4,5}     转载:https://www.cnblogs.com/ooo0/p/9169311.html 推荐内容: Java简历与面试 【面试题】2018年最全...
  • head表示取表的第一个元素的值, tail表示把表中除第一个元素外的所有元素组成一个新表,相当于每次删除表中第一个元素(原表中元素数大于1)。 eg:T=( a,(b,c) ) tail(T)=( (b,c) ) head(T)=a
  • JAVA双大括号语法

    2021-01-24 01:57:28
    第二个大括号是在这个匿 名内部类中创建一个非静态初始化代码块,最后new 的操作是得到当前对象的子类 (匿名内部类)然后向上转型为当前对象的引用。 缺陷: 类中每一处双大括号的引用都会产生一个.class文件,...
  • Pygame学习(一) pygame创建游戏界面

    千次阅读 2018-11-15 18:50:20
    pygame创建游戏界面 使用pygame之前,需要使用init方法(pygame.init()),初始化模块。 游戏结束之前需要调用quit方法(pygame.quit()),卸载模块,结束游戏。 游戏中的坐标系 左上角是原点(0,0),宽度为x,...
  • C++类型处理

    2018-11-18 22:50:02
    decltype表达式如果是双层括号,那么结果永远是引用,必须初始化。 int main ( void ) { int value1 = 0 ; decltype ( ( value1 ) ) value2 ; return 0 ; } 我们还可以利用标准类型转换...
  • 我首先想到的是 换== 为 -eq,马上否定,再思考一下,我想到shell编程规范,记得用双中括号,更改后,ok。我想知道为什么在没参数时就报错呢,查找了一下, 如下:  如果变量“ 参数 ”的值为空,那么就if语句就...
  • int i = 0; decltype((i)) d; 上述语句是有错误的,因为变量d没有被初始化。原因是decltype((i))的结果是一个引用,"()"将i变成一个表达式,其结果相当于i的一个引用,因此d需要被初始化。
  • 参考:https://www.gnu.org/software/bash/manual/html_node/Conditional-Constructs.html#Conditional-Constructshttp://bbs.chinaunix.net/forum.php?mod=viewthread&...双圆括号Thearithmetic...
  • 正则表达式中的小括号用法

    千次阅读 2018-12-24 15:10:27
    正则表达式中的小括号用法 小括号中的连续字符作为可选: “Nov” -match “\bNov(ember)?\b” 返回true “November” -match “\bNov(ember)?\b” 返回true 正则表达式中的小括号的作用是对字符进行分组,并保存...
  • Word中,书签功能常用于查找、定位、标记特定字符或段落,对于篇幅较大的文档,此功能非常实用。下面,将介绍通过Java程序来添加及删除Word书签的方法。示例要点包括: 1. 添加书签 1.1 给指定段落添加书签 ...
  • 假设data 是一个矩阵,则有如下表示情况 data(x,y) x是行数 y是列数 data(:,y)就是指y列对应的所有行的值组成的一个向量 data(:,[y1:y2]) 就是指y1到y2列的对应的所有行的值组成的一个矩阵 ...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 2,472
精华内容 988
关键字:

双层括号