shell 运算符
一、赋值运算符:
-
赋值运算符**=,用于算数赋值和字符串赋值**
-
默认认为是字符串
[root@iZbp1e44zna0rzyna76eszZ lvhuiqi]# a=3+3 [root@iZbp1e44zna0rzyna76eszZ lvhuiqi]# echo $a 3+3
-
-
使用unset取消变量的赋值
-
=(等号)除了作为赋值运算符还可以作为测试操作符
二、算数运算符:
-
基本运算符:
- +:加
- -:减
- *:乘
- /:除
- **:乘方
- %:取余数
-
使用expr进行运算:
- expr 3+3
- a=expr
# expr的使用 [root@iZbp1e44zna0rzyna76eszZ lvhuiqi]# expr 3 + 3 6 # 赋值操作 [root@iZbp1e44zna0rzyna76eszZ lvhuiqi]# num=`expr 3 + 3` [root@iZbp1e44zna0rzyna76eszZ lvhuiqi]# echo $num 6
# 加号需要有空格 [root@iZbp1e44zna0rzyna76eszZ lvhuiqi]# expr 3 +3 expr: syntax error: unexpected argument '+3' # 必须是整数的添加 [root@iZbp1e44zna0rzyna76eszZ lvhuiqi]# expr 3 + 3.3 expr: non-integer argument
注意:expr只能支持整数,不支持浮点数运算 。expr 后面的运算符号必须有空格相隔。
三、数字常量:
数组常量的使用方法:
- let 变量名=变量值:
- 变量值使用0开头为八进制:
- 变量值使用0X开头为十六进制:
四、双圆括号:
双圆括号是let命令的简化。
-
(( a = 10))
# 因为=默认为字符串的添加,所以使用(())来解决 [root@iZbp1e44zna0rzyna76eszZ lvhuiqi]# ((a=10)) [root@iZbp1e44zna0rzyna76eszZ lvhuiqi]# echo $a 10
-
(( a++ ))
# a的值是10 [root@iZbp1e44zna0rzyna76eszZ lvhuiqi]# ((a=10)) [root@iZbp1e44zna0rzyna76eszZ lvhuiqi]# echo $a 10 [root@iZbp1e44zna0rzyna76eszZ lvhuiqi]# ((a++)) [root@iZbp1e44zna0rzyna76eszZ lvhuiqi]# echo $a 11 [root@iZbp1e44zna0rzyna76eszZ lvhuiqi]# ((a++)) [root@iZbp1e44zna0rzyna76eszZ lvhuiqi]# echo $a 12
-
echo $((10+20))
[root@iZbp1e44zna0rzyna76eszZ lvhuiqi]# echo $((a=10+20)) 30