zoukankan      html  css  js  c++  java
  • Bash中的括号(三)

    1、两个小括号用来对整数进行算术运算和逻辑运算,比如

    例如给变量赋值:

    $ a=1+1; echo $a
    1+1
    $ (( b = 1 + 1 )); echo $b
    2

    1+1 只是一个字符串,而 b 就是一个算术表达式结果。

    正是因为是算术表达式,所以比较也是按数字本身而不是字符串:

    $ (( 3 > 1 )); echo $?
    0
    $ (( 3 > 6 )); echo $?
    1
    $ (( 3 > 10 )); echo $?
    1

    所以也可以套上 if 语句来用:

    [root@noi ~]# if((3>1))
    > then
    > echo "right,3>1"
    > fi
    right,3>1
    [root@noi ~]# a=3;b=10
    [root@noi ~]# if((a>b));then
    > echo "$a > $b"
    > else
    > echo "$a < $b"
    > fi
    3 < 10

     2、(())还具有C语言类型变量增减的功能。如:

    [root@noi ~]# a=2
    [root@noi ~]# ((a++))
    [root@noi ~]# echo $a
    3

    3、只要括号中的运算符、表达式符合C语言运算规则,都可用在$((exp))中,甚至是三目运算符。作不同进位(如二进制、八进制、十六进制)运算时,

    输出结果全都自动转化成了十进制。如:

    [root@noi ~]# echo $((16#5f))
    95

    4、双括号中的变量可以不使用$符号前缀。括号内支持多个表达式用逗号分开。

    #这个i不用$,是因为这里是定义,而不是使用
    [root@noi ~]# for i in $(seq 100) > do
    #因为i在双括号中,可以省掉$,可以看出shell也是挺人性化的,只要不是为了填坑,尽量方便大家哦。
    > if((i%12==0));then > echo $i > fi > done 12 24 36 48 60 72 84 96

    看到没?有的加了$,有的却不需要,但是原谅bash吧,它的奇怪行为大多为了填坑补洞。

    上面的式子用for写:

    [root@noi ~]# for((i=0;i<100;i++))
    > do
    >    if((i%12==0))
    >    then
    >       echo $i
    >    fi
    > done
    0
    12
    24
    36
    48
    60
    72
    84
    96

    5、附加几个常用的式子:

        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  

    先写到这里,特别感谢:

    http://blog.csdn.net/tttyd/article/details/11742241

    http://blog.csdn.net/xibeichengf/article/details/51226052

    http://blog.csdn.net/u012598668/article/details/42236427

  • 相关阅读:
    java 多线程学习(一)
    解决安卓微信浏览器刷新问题
    sublime text3 配置tab为4个空格
    React 错误Each child in an array or iterator should have a unique “key” prop
    git filename to long问题解决
    JS获取URL参数 方法
    CSS超出2行省略号
    JS判断是否为安卓orIOS
    获取移动设备真实宽高
    微信分享朋友圈监听(PHP)
  • 原文地址:https://www.cnblogs.com/litifeng/p/6895912.html
Copyright © 2011-2022 走看看