shell运算符--linux

# linux变量默认是字符串类型,需要用declare来进行声明

ubuntu@VM-0-13-ubuntu:~$ a=8;a+=1
ubuntu@VM-0-13-ubuntu:~$ echo $a
81
ubuntu@VM-0-13-ubuntu:~$ declare -i a
# 复合算数运算符
ubuntu@VM-0-13-ubuntu:~$ a=8;a+=2
ubuntu@VM-0-13-ubuntu:~$ echo $a
10
# 位运算符
majun@instance-zqtg07w6:~$ let "c=4<<2"
majun@instance-zqtg07w6:~$ echo $c
16
majun@instance-zqtg07w6:~$ let "c=4>>2"
majun@instance-zqtg07w6:~$ echo $c
1


majun@instance-zqtg07w6:~$ let "c=8&4"
majun@instance-zqtg07w6:~$ echo $c
0
majun@instance-zqtg07w6:~$ let "c=8|4"
majun@instance-zqtg07w6:~$ echo $c
12
majun@instance-zqtg07w6:~$ let "c=10^3"
majun@instance-zqtg07w6:~$ echo $c
9
majun@instance-zqtg07w6:~$ let "c=~10"
majun@instance-zqtg07w6:~$ echo $c
-11
majun@instance-zqtg07w6:~$
# 非运算
# ~a = -(a+1)


# 自增自减运算
majun@instance-zqtg07w6:~$ cat add_minus.sh
#!/bin/bash
Add_01=10
Add_02=10
let "Add_03=(++Add_01)"
let "Add_04=(Add_02++)"
echo "add01:$Add_01"
echo "add02:$Add_02"
echo "add03:$Add_03"
echo "add04:$Add_04"
majun@instance-zqtg07w6:~$ bash add_minus.sh
add01:11
add02:11
add03:11
add04:10
# 使用$[]做运算
majun@instance-zqtg07w6:~$ echo $[1+1]
2
majun@instance-zqtg07w6:~$ echo $[1*21]
21
majun@instance-zqtg07w6:~$ echo $[5/2]
2
majun@instance-zqtg07w6:~$ echo $[5%2]
1
majun@instance-zqtg07w6:~$ echo $[5**2]
25

# 使用expr做运算
majun@instance-zqtg07w6:~$ expr 1+1
1+1
majun@instance-zqtg07w6:~$ expr 1 + 1#要有空格才能运算
2
majun@instance-zqtg07w6:~$ expr 1 * 1
expr: syntax error
majun@instance-zqtg07w6:~$ expr 1 \* 1
1

# declare先声明再运算,不声明默认字符串
majun@instance-zqtg07w6:~$ i=1+1
majun@instance-zqtg07w6:~$ echo $i
1+1
majun@instance-zqtg07w6:~$ declare -i i
majun@instance-zqtg07w6:~$ i=1+1
majun@instance-zqtg07w6:~$ echo $i
2

# $((算数表达式))
majun@instance-zqtg07w6:~$ i=2
majun@instance-zqtg07w6:~$ echo $((2*i+1))
5
majun@instance-zqtg07w6:~$ echo $((2*(i+1)))
6
majun@instance-zqtg07w6:~$ var=$((2*(i+1)))
majun@instance-zqtg07w6:~$ echo $var
6

# 通配符扩展
majun@instance-zqtg07w6:~$ echo {x1,x2,x3}{y1,y2,y3}
x1y1 x1y2 x1y3 x2y1 x2y2 x2y3 x3y1 x3y2 x3y3
majun@instance-zqtg07w6:~$ touch file_{A,B}
majun@instance-zqtg07w6:~$ ls
add_minus.sh  export.sh  file_B  helloworld.sh  return.sh  shift_01.sh  txt
co.txt        file_A     f.sh    read.sh        shell      shift_02.sh

所有的练习脚本都在:
https://github.com/SaltNego/Learn_linux_bash

发布了61 篇原创文章 · 获赞 22 · 访问量 4261

猜你喜欢

转载自blog.csdn.net/yiqiushi4748/article/details/103783566
今日推荐