zoukankan      html  css  js  c++  java
  • shell 中的括号——() [] {} 使用

    $()

    用作命令替换,同``,如var=`ls` 和var=$(ls)的结果一样

    可以使用echo $var | xargs –n 1查看

    ${}

    用作变量替换,与$类似,但是可以做形如var=${A}B这种工作,即在变量A后面增加一个B,可以认为是加强版的$A

    $(())

    用于计算,同样可用于计算的还有let, expr

    res=$((5+2))

    let res=5+2

    res=`expr 5 + 2`


    [[]]与[]

    1、  前者“[[”是关键字,后者是内建命令,相当于test ;

    2、  逻辑判断用法不一致

    [ : -a –o

    [[ : && ||

    3、  对于[]来说,要用-eq 等进行数字比较,而不能传入字符串和数字进行比较,而在[[]]中会把字符串直接转为0;当比较的变量为空时,使用[]就会报错,而[[]]不存在这种问题


    4、  [[]]可以用于算术运算,而[]不行

    如:

    [[ 99+1 –eq 100 ]]  true

    [ 99+1 –eq 100 ]  报错, 但可以使用[ $((99+1)) –eq100 ]

    5、 命令行参数的区别

    1)        [ ... ]为shell命令,所以在其中的表达式应是它的命令行参数,所以串比较操作符">" 与"<"必须转义,否则就变成IO重定向了;

    如: [ 0 < 1] 与[[ 0 < 1]]

    2)        由于"[["是关键字,不会做命令行扩展,所以在[[中"<"与">"不需转义,但是相对的语法就稍严格些。例如在[ ... ]中可以用引号括起操作符,因为在做命令行扩展时会去掉这些引号,而在[[ ... ]]则不允许这样做;

             $[[ "-z" "" ]]   报错,而$[“-z” “”]  true

  • 相关阅读:
    http://blog.csdn.net/sinat_33950284/article/details/50646622
    http://edu.csdn.net/course/detail/2798?ref=blog&loc=0
    微服务架构的分布式事务解决方案
    http://www.cnblogs.com/chenpi/p/5999707.html
    http://blog.csdn.net/hejingyuan6/article/details/47403299
    https://www.oschina.net/p/goshop2
    https://github.com/SuperMan42/MVP
    spring mvc
    http://www.iyaxi.com/2015-11-17/732.html
    场景测试
  • 原文地址:https://www.cnblogs.com/OpenLinux/p/5020693.html
Copyright © 2011-2022 走看看