操作符与相关主题

来源:互联网 发布:网络篮球游戏大全 编辑:程序博客网 时间:2024/05/17 20:30

操作符

赋值
变量赋值

初始化或者修改变量的值

=

通用赋值操作符, 可用于算术和字符串赋值.

var=12catagory=minerals# 在“=”之后是不允许出现空白字符的.

算术操作符

+, -, *, /

加减乘除计算.

**

幂运算.

+=, -=, *=, /=, %=

"加-等于", "减-等于", "乘-等于", "除-等于", "取模-等于".

位操作符

<<, >>

"左移一位"(每次左移都相当于乘以2),  "右移一位"(每次右移都相当于除以2).

<<=, >>=

"左移-赋值", "右移-赋值".

let "var <<= 2"# 变量var左移2位(就是乘以4)

&

按位与

&=

"按位与-赋值"

|

按位或

|=

"按位或-赋值"

~

按位反

!

按位非

^

按位异或XOR

^=

"按位异或-赋值"

逻辑操作符

&&

与(逻辑)

if [ $condition1 ] && [ $condition2 ]#与if [ $condition1 -a $condition2 ]相同if [[ $condition1 && $condition2 ]]#也可以

||

或(逻辑)

,

逗号操作符

逗号操作符可以连接两个或多个算术运算. 所有的操作都会被运行(可能会有负作用), 但是只会返回最后操作的结果.

let "t1 = ((5+3, 7-1, 15-4))"echo "t1 = $t1"# t1 = 11let "t2 = ((a = 9, 15/3))"echo "t2 = $t2 a=$a"# t2 = 5   a = 9

数字常量

shell脚本在默认情况下都是把数字作为10进制数来处理, 除非这个数字采用了特殊的标记或者前缀.如果数字以 0 开头的话那么就是 8进制 数. 如果数字以 0x 开头的话那么就是 16进制数. 如果数字中间嵌入了 # 的话, 那么就被认为是 BASE#NUMBER 形式的标记法(有范围和符号限制).
#!/bin/bash# number.sh: 几种不同进制的数字表示法# 10进制:默认情况let "dec = 32"echo "decimal number = $dec"# 32# 8进制:以'0'开头let "oct = 032"echo "octal number = $oct"#26#表达式结果是用10进制表示的# 16进制:以‘0x'或者'0X'开头的数字let "hex = 0x32"echo "hexadecimal number = $hex"#50#结果是用10进制表示的let "bin = 2#111100111001101"echo "binary number = $bin"#31181let "b32 = 32#77"echo "base-32 number = $b32"#231echo $((36#zz)) $((2#10101010)) $((16#AF16)) $((53#1aA))#1295 170   44822 3375#使用一个超出给定进制的数字的话,将会引起一个错误exit 0

原创粉丝点击