bash学习记录(四) bash中的操作及相关话题

bash学习记录(四) bash中的操作及相关话题

计算符 Operators

一.赋值(assignment)

变量赋值:初始化变量或者改变变量的值

在所有的赋值操作中,计算赋值和字符串复制都是可以的,并不存在差异。

1
2
3
var=27
category=minerals
# No spaces allowed after the "=".

二.计算操作符

+-*/,%(取模运算),+=-=*=,/=,%=这些操作符和其他语言(比如java)语义相同。唯一有个差异的是 ** 是乘方操作

1
2
3
4
5
6
7
8
9
10
11
12
13
#一般赋值
i=1
bash="/bin/bash"

#一般操作符
let "z=i+1"
echo $z

let "i+=2"
echo $i

let "z=i**2"
echo $z

需要注意的是bash不能理解浮点数,他会默认把浮点数当作字符串来处理。

需要在脚本中使用 bc来计算浮点数

三.其他操作符

  • 按位操作:

    << : bitwise left shift (multiplies by 2 for each shift position)

    >>: bitwise right shift (divides by 2 for each shift position)

    &,|,~,^ : 分别对应 位与,位或,位否,异或

  • 逻辑操作

    :非

    && : AND

    || : OR

  • 杂项

    :逗号操作符,连接多个计算表达式,但是需要注意的是,这样只能返回最后一个算式的值

    1
    2
    3
    4
    5
    6
    7
    let "t1 = ((5 + 3, 7 - 1, 15 - 4))"
    echo "t1 = $t1" # t1 = 11
    # Here t1 is set to the result of the last operation. Why?

    let "t2 = ((a = 9, 15 / 3))" # Set "a" and calculate "t2".
    echo "t2 = $t2 a = $a" # t2 = 5 a = 9
    `
-------------本文结束感谢您的阅读-------------

本文标题:bash学习记录(四) bash中的操作及相关话题

文章作者:NanYin

发布时间:2018年04月12日 - 15:04

最后更新:2019年08月12日 - 13:08

原始链接:https://nanyiniu.github.io/2018/04/12/2018-04-16-bash_operationAndRelatedTopics/

许可协议: 署名-非商业性使用-禁止演绎 4.0 国际 转载请保留原文链接及作者。