Shell脚本之基本语法

时间:2024-04-04 14:48:38
shell 中变量默认都是字符型的,不管是其字面值是不是数值,所以当两个变量相加时,默认是字符串 拼接的操作,例如:
[root@localhost ~]# num1=1
[root@localhost ~]# num2=2
[root@localhost ~]# num3=$num1+$num2
[root@localhost ~]# echo $num3
1+2

声明变量类型 

格式: declare [+/-][ 选项 ] 变量名
  • - 给变量设置类型属性
  • + 取消变量的类型属性,注意与我们的日常习惯不同
  • -i 将变量指定为整型
  • -x 将变量声明为环境变量
  • -p 显示指定变量被设置的类型

示例:

[root@localhost ~]# num1=1
[root@localhost ~]# num2=2
[root@localhost ~]# num3=$num1+$num2
[root@localhost ~]# echo $num3
1+2
[root@localhost ~]# declare -i num4=$num1+$num2
[root@localhost ~]# echo $num4
3
#此处是数值相加,而不是字符串相加了
[root@localhost ~]#

exprlet数值运算工具

[root@localhost ~]# a=1
[root@localhost ~]# b=2
[root@localhost ~]# c=$(expr $a + $b)
#注意空格
[root@localhost ~]# echo $c
3
[root@localhost ~]#

$((表达是)) $[表达式]

推荐使用的方式,示例:

[root@localhost ~]# a=5
[root@localhost ~]# b=6
[root@localhost ~]# c=$((a+b))
[root@localhost ~]# echo $c
11
[root@localhost ~]# a=8
[root@localhost ~]# b-9
-bash: b-9: 未找到命令
[root@localhost ~]# b=9
[root@localhost ~]# c=$[a + b]
[root@localhost ~]# echo $c
17
[root@localhost ~]#

五、运算符

优先级 运算符 说明
13 -+ 单目,正负运算符
12 !, ~ 逻辑非,按位取反,或补码
11 *, /, % 乘,除,取余
10 +, - 加,减
9 >>, << 按位左移,按位右移
8 >, <, <=, >= 大于,小于,大于等于,小于等于
7 ==, != 等于,不等于
6 & 按位
5 ^ 按位异
4
3 && 逻辑
2
1 =, +=, -=, *=, /=, %=, &=, ^= 各种赋值
优先级的数值越大,优先级越高,注意和其他语言的数值月底优先级越高不同。
示例:
[root@localhost ~]# num = $(( (15 + 34) * 5 / 2 ))
-bash: num: 未找到命令
[root@localhost ~]# num=$(( (15 + 34) * 5 / 2 ))
[root@localhost ~]# echo num
num
[root@localhost ~]# echo $num
122
[root@localhost ~]# b=$((19%2))
[root@localhost ~]# echo $b
1
[root@localhost ~]# c=$(( 1 && 0 ))
[root@localhost ~]# echo $c
0
[root@localhost ~]#