shell编程之五(进制转换,转义符,双圆括号结果(( )),算术运算符)

进制转换

    使用 $((...)) 这样的形式进行进制转换
    echo $(( 2#11 ))    #将二进制11   转换为十进制    结果是3
    echo $(( 16#ff ))   #将十六进制11 转换为十进制     结果是15
    echo $(( 8#11 ))    #将八进制11   转换为十进制    结果是9

特殊转义符的特殊含义

echo 和 sed命令中
    \       # 续行
    \n      # 换行
    \r      # 回车
    \t      # 水平制表符tab
    \v      # 垂直制表符
    \b      # 后退符
    \a      # 提示音或提示符(蜂鸣或闪烁)
    \0xx    # 转换为八进制ASCII码

双圆括号结构(( )) ,算术运算符(记住:在/以及%运算中,除数不能为0)

双圆括号结构(( )) 与 let 效果一样
    (( a=5+3 ))    ; echo $a
    (( a ++ ))     ; echo $a        #自增后置预算,自减后置(( a -- ))
    (( ++ a ))     ; echo $a        #自增前置预算,自减前置(( -- a ))
    $a=(( 5+3 ))   ; echo $a

    # C语言风格的三元操作
    (( t = a<45?7:11 )) ; echo $t    #如果a<45,那么就把7赋值给t,否则把11赋值给t

    let  "b=3+5"   ; echo $b

    运算符     意义      例子      写法          结果
    +       加运算     3+5     let "a=3+5"       8
    -       减运算     3-5     let "a=3-5"       -2
    *       乘运算     3*5     let "a=3*5"       15
    /       除运算     5/3     let "a=5/3"       1   #只会保留整数部分
    %       取  余    5%3     let "a=5%3"       2   
    **      幂运算     5**3    let "a=5**3"  125

算术复合赋值运算符

    +=  a+=5    a=a+5   let "a+=5"
    -=  a-=5    a=a-5   let "a-=5"
    *=  a*=5    a=a*5   let "a*=5"
    /=  a/=5    a=a/5   let "a/=5"
    %=  a%=5    a=a%5   let "a%=5"

自增自减运算符(只能用在变量上,不能用在常数或则表达式上){如++5,(5+x)++}都是错的

    前置性:++variable ,--variable  #先改变变量的值,再将改变后的变量值交给表达式
    后置性:variable++ ,variable--  #先将变量的值交给表达式,再改变变量的值

    ww=5
    let "a=(++ww)"      #这里的变量不需要$
    echo $a
声明:本文为原创,作者为 辣条①号,转载时请保留本声明及附带文章链接:https://boke.wsfnk.com/archives/512.html
谢谢你请我吃辣条谢谢你请我吃辣条

如果文章对你有帮助,欢迎点击上方按钮打赏作者

最后编辑于:2023/5/17作者: 辣条①号

现在在做什么? 接下来打算做什么? 你的目标什么? 期限还有多少? 进度如何? 不负遇见,不谈亏欠!

暂无评论

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注

arrow grin ! ? cool roll eek evil razz mrgreen smile oops lol mad twisted wink idea cry shock neutral sad ???

文章目录