单引号:不进行转译和获取变量,输出原字符串
echo 'date'
date
双引号:可以进行变量的赋值
vi hello.sh
#!/bin/bash
echo "input name:"
read name
Hello $name
sh hello.sh
input name:
Asker
Hello Asker
反引号:输出命令执行结果
echo `date`
Tue Dec 29 10:33:40 CST 2020
echo date
date
count=`awk -l /home/wjj/application.yml`
注意,赋值号 = 的周围不能有空格,这可能和你熟悉的大部分编程语言都不一样。 所以需要加上反引号!
使用一个定义过的变量,只要在变量名前面加美元符号$即可,如:
author="严长生" echo $author echo ${author}
变量名外面的花括号{ }是可选的,加不加都行,加花括号是为了帮助解释器识别变量的边界
$加括号:
-
$():这个小括号里放的是命令,和 ``反引号 作用一样,执行这个命令
-
${}:这里面放的是变量,用来引用的
(())重定义变量值
[root@localhost ~]# a=5;b=7
[root@localhost ~]# ((a++))
[root@localhost ~]# echo $a
6
[root@localhost ~]# ((a--));echo $a
5
[root@localhost ~]# ((a<b));echo $?
0
[root@localhost ~]# ((a>b));echo $?
1
$(( ))
- 整数运算:在 $(( )) 中的变量名称,可于其前面加 $ 符号来替换,也可以不用。
[root@localhost ~]# echo $((2*3))
6
[root@localhost ~]# a=5;b=7;c=2
[root@localhost ~]# echo $((a+b*c))
19
[root@localhost ~]# echo $(($a+$b*$c))
19
- 进制转换:$(( ))可以将其他进制转成十进制数显示出来
echo $((N#xx))
其中,N为进制,xx为该进制下某个数值,命令执行后可以得到该进制数转成十进制后的值。
[root@localhost ~]# echo $((2#110))
6
[root@localhost ~]# echo $((16#2a))
42
[root@localhost ~]# echo $((8#11))
9
${ }变量替换