bash变量单引号、双引号、反引号的区别

bash变量单引号、双引号、反引号的区别

# 定义数字变量
[root@WzcWyt wyt]# a=123
[root@WzcWyt wyt]# echo $a
123

# 定义布尔变量
[root@WzcWyt wyt]# a=false
[root@WzcWyt wyt]# echo $a
false

# 定义字符串变量
[root@WzcWyt wyt]# a="abc"
[root@WzcWyt wyt]# echo $a
abc

# 字符串拼接
[root@WzcWyt wyt]# echo ${a}-hello
abc-hello
[root@WzcWyt wyt]# echo 'hhhh $a'
hhhh $a
[root@WzcWyt wyt]# echo "hhhh $a"
hhhh abc

[root@WzcWyt wyt]# echo $PATH
/usr/local/python3/bin:/usr/local/apache-maven-3.6.3/bin:/usr/local/jdk1.8.0_231/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin

# 定义数组变量
[root@WzcWyt wyt]# a=({1..10})
[root@WzcWyt wyt]# echo ${a[*]}
1 2 3 4 5 6 7 8 9 10

[root@WzcWyt wyt]# a=(1 2 3 4 5)
[root@WzcWyt wyt]# echo $a
1
[root@WzcWyt wyt]# echo ${a[@]}
1 2 3 4 5
[root@WzcWyt wyt]# echo ${a[*]}
1 2 3 4 5
[root@WzcWyt wyt]# echo ${#a[*]}
5

[root@WzcWyt wyt]# ls
apache-maven-3.6.3-bin.tar.gz
apache-tomcat-9.0.30.tar.gz

[root@WzcWyt wyt]# a=`ls`
[root@WzcWyt wyt]# echo $a
apache-maven-3.6.3-bin.tar.gz apache-tomcat-9.0.30.tar.gz

[root@WzcWyt wyt]# arry=(`ls`)
[root@WzcWyt wyt]# echo $arry
apache-maven-3.6.3-bin.tar.gz
[root@WzcWyt wyt]# echo ${arry[*]}
apache-maven-3.6.3-bin.tar.gz apache-tomcat-9.0.30.tar.gz

[root@WzcWyt wyt]# echo ${arry[1]}
apache-tomcat-9.0.30.tar.gz

[root@WzcWyt wyt]# a="a\nbc"
[root@WzcWyt wyt]# echo $a
a\nbc
[root@WzcWyt wyt]# echo -e $a
a
bc

[root@WzcWyt wyt]# echo my dir is `ls`
my dir is apache-maven-3.6.3-bin.tar.gz apache-tomcat-9.0.30.tar.gz 
[root@WzcWyt wyt]# echo my dir is $(ls)
my dir is apache-maven-3.6.3-bin.tar.gz apache-tomcat-9.0.30.tar.gz 

[root@WzcWyt wyt]# a=2;b=3
[root@WzcWyt wyt]# echo $((a+b))
5
[root@WzcWyt wyt]# echo $((a+b*2))
8

# 变量计算后再赋值
[root@WzcWyt wyt]# a=1
[root@WzcWyt wyt]# ((a=a+8))
[root@WzcWyt wyt]# echo $a
9
[root@WzcWyt wyt]# 

# ++ --
[root@WzcWyt wyt]# a=5
[root@WzcWyt wyt]# ((a--));echo $a
4
[root@WzcWyt wyt]# ((a--));echo $a
3

# $? 判断上一条是否成功,成功:0,其他都是失败
[root@WzcWyt wyt]# a=2;b=3
[root@WzcWyt wyt]# ((a>b))
[root@WzcWyt wyt]# echo $?
1
[root@WzcWyt wyt]# ls aaa
ls: cannot access 'aaa': No such file or directory
[root@WzcWyt wyt]# echo $?
2
[root@WzcWyt wyt]# true
[root@WzcWyt wyt]# echo $?
0
[root@WzcWyt wyt]# false
[root@WzcWyt wyt]# echo $?
1

# 浮点数问题
[root@WzcWyt wyt]# echo $((2/3))
0
[root@WzcWyt wyt]# awk 'BEGIN{print 2/3}'
0.666667

# 字符串切片
[root@WzcWyt wyt]# a="hello world abcd"
[root@WzcWyt wyt]# echo ${a:6}
world abcd
[root@WzcWyt wyt]# echo ${a:6:5}
world
# 获取字符串长度
[root@WzcWyt wyt]# echo ${#a}
16
# #是从前面向后匹配,将匹配到的字符串去掉
[root@WzcWyt wyt]# echo ${a#hello}
world abcd
[root@WzcWyt wyt]# echo ${a#*llo}
world abcd
[root@WzcWyt wyt]# echo ${a#*o}
world abcd
# 结果带空格
[root@WzcWyt wyt]# echo "${a#*o}"
 world abcd
# 匹配空格
[root@WzcWyt wyt]# echo ${a#*o }
world abcd
[root@WzcWyt wyt]# echo ${a#*o  }
hello world abcd
# 匹配所有符合要求的字符串
[root@WzcWyt wyt]# echo ${a##*o}
rld abcd

# 从后向前匹配
[root@WzcWyt wyt]# echo ${a%a*}
hello world
# world后面带空格
[root@WzcWyt wyt]# echo "${a%a*}"
hello world 
[root@WzcWyt wyt]# echo "${a%%o*}"
hell
[root@WzcWyt wyt]# echo ${a%%o*}
hell

# 替换字符串
[root@WzcWyt wyt]# echo ${a/abcd/aaaa}
hello world aaaa


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值