加、减、乘、除、取余
+、-、*、/、%
小实例
BEGIN{
# print 1+2
# print 2-1
# print 2*3
# print 8/2
print 4%2
}
等(赋值运算符)、加等于、减等于、乘等于、除等于、取模等于
=、+=、-=、*=、/=、%=
小实例
BEGIN{
a=10
# print a #10
# a+=5
# print a #15
# a-=5
# print a
# a*=2
# print a #20
# a/=2
# print a #5
a%=2
print a # 0
}
大于、大于等于、小于、小于等于、等等于、不等于
>、>=、<、<=、==、!=
小实例
BEGIN{
# a=10
# b=20
# print a>b
#true 1,false 空
# print a<=b
#true 1,false 0
# print a==b
#true 1,false 0
a="mysql"
b="oracle"
print a!=b
#true 1,false 0
}
逻辑运算最后返回的都是1或0
与、或、非
&&、||、!
小实例
1.&&
返回false
BEGIN{
a=10
b=0
print a && b
}
返回false
BEGIN{
a=10
b=20
c="linux"
d="Linux"
print a
2.||
返回false
BEGIN{
a=0
b=0
print a || b
}
返回true
BEGIN{
a=10
b=20
c="linux"
d="Linux"
print a<20 || c==d
}
3.!
返回false
BEGIN{
a=10
print !a
}
返回true
BEGIN{
a=10
b=20
c="linux"
d="Linux"
print !(c==d)
}
匹配、不匹配
~、!~
小实例
1.~
d与li开头匹配,返回结果为true
BEGIN{
d="linuX"
print d~/^li/
}
2.!~
d与li开头不匹配,返回结果为false
BEGIN{
d="linuX"
print d!~/^li/
}
#返回值都是0或1
1.一元运算符
++、--
2.三元运算符
?:
小实例
1.a++
BEGIN{
a=10
b=a++
#b=a=10
#a=a+1=11
print b
print a
}
BEGIN{
a=10
print a++
print a
}
2.++a
BEGIN{
a=10
b=++a
#b=(a=a+1)=11
#a=11
print b
print a
}
3.?:
BEGIN{
a=10
b=20
print (a!=b)?"ture":"false"
}
优先级从高到低
$
+,-,! #正、负、非
*,/,%
+,- #加、减
>,>=,<,<=,==,!=
~,!~ #正则:匹配、不匹配
&&
||
?:
=,+=,-=,*=,/=,%=
用()来提高优先级,来提高代码的开发效率
BEGIN{
# print (2+3)*(5-6)
print 2+3*5-6
}
小实例
1.优先级问题
BEGIN{
a=10
b=20
print a=100 && b=200
print a
print b
}
2.解决方法
BEGIN{
a=10
b=20
print (a=100) && (b=200)
print a
print b
}