1、普通变量
本地变量在用户当前的Shell生存期的脚本中使用。例如,本地变量OLDBOY取值为bingbing,这个值在用户当前Shell生存期中有意义。如果在Shell中启动另一个进程或退出,本地变量值将无效
[linuxprobe@linuxprobe ~]$ a=1
[linuxprobe@linuxprobe ~]$ b=‘2’
[linuxprobe@linuxprobe ~]$ c=“3”
[linuxprobe@linuxprobe ~]$ echo "
a
"
1
[
l
i
n
u
x
p
r
o
b
e
@
l
i
n
u
x
p
r
o
b
e
]
a" 1 [linuxprobe@linuxprobe ~]
a"1[linuxprobe@linuxprobe ] echo "
b
"
2
[
l
i
n
u
x
p
r
o
b
e
@
l
i
n
u
x
p
r
o
b
e
]
{b}" 2 [linuxprobe@linuxprobe ~]
b"2[linuxprobe@linuxprobe ] echo “${c}”
提示:
变
量
名
表
示
输
出
变
量
,
可
以
用
变量名表示输出变量,可以用
变量名表示输出变量,可以用c和${c}两种用法``
小结:连续普通字符串内容赋值给变量,不管用什么引号或者不用引号,它的内容是什么,打印变量就输出什么
2、变量中引号的使用
只有在变量的值中有空格的时候,会使用引号。
单引号与双引号的区别在于,是否能够解析特殊符号。
[root@clsn ~]# name=znix
[root@clsn ~]# name2=‘clsn’
[root@clsn ~]# name3=“http://blog.znix.top”
[root@clsn ~]# echo $name
znix
[root@clsn ~]# echo $name2
clsn
[root@clsn ~]# echo $name3
http://blog.znix.top
[root@clsn ~]# name4=‘cl sn’
[root@clsn ~]# echo $name4
cl sn
[root@clsn ~]# name5=“cl sn”
[root@clsn ~]# echo $name5
cl sn
[root@clsn ~]# name6=‘cl sn $PWD’
[root@clsn ~]# echo $name6
cl sn $PWD
[root@clsn ~]# name6=“cl sn $PWD”
[root@clsn ~]# echo $name6
cl sn /root
3、普通变量的要求
4、使用${}
[root@linuxprobe scripts]# time=`date`
[root@linuxprobe scripts]# echo "$time"
Wed Dec 2 04:53:08 EST 2020
[root@linuxprobe scripts]# echo $time_day
[root@linuxprobe scripts]# echo ${time}_day
Wed Dec 2 04:53:08 EST 2020_day
[root@linuxprobe scripts]# echo ${time}-day
Wed Dec 2 04:53:08 EST 2020-day
脚本测试1```bash
#/bin/bash
time=`date`
echo "$timeday"``
echo "${time}_day"
`[root@linuxprobe scripts]# sh bianliang.sh
Wed Dec 2 05:04:10 EST 2020_day
5、定义变量名技巧
- 变量名只能为字母、数字或下划线,只能以字母或下划线开头。
- 变量名的定义要有一定的规范,并且要见名知意。
- 一般的变量定义、赋值常用双引号;简单连续的字符串可以不加引号;希望原样输出时使用单引号。
- 希望变量的内容是命令的解析结果时,要用反引号’’,或者用$()把命令括起来再赋值。