+++++++++++++++++++++++++++++++++++++
变量定义的规则:
1,区分大小写,同名称但大小写不同的变量名是不同的变量
[root@li www]# a=2
[root@li www]# A=3
[root@li www]# echo $a
2
[root@li www]# echo $A
3
2,定义时的格式要注意,等号两边不能有空格,对于有空格的字符串做为赋值时,要用引号引起来
B=“hello world”
B=‘hello world haha’ --单引号和双引号在这里都可以,后赋值的会覆盖前面的赋值
–在脚本里注意引号的相互嵌套,要成对出现
3,单引号与双引号的区别,单引号内的变量或者特殊字符仅为一般字符,但双引号内的变量或者特殊字符可以保持它的变量特性
[root@li ~]# echo '$B'
$B
[root@li ~]# echo "$B"
hello world haha
4,变量名可以是字母或数字或下划线,但是不能以数字开头
[root@li ~]# c123=aaa
[root@li ~]# echo $c123
aaa
[root@li ~]# 123c=aaa
bash: 123c=aaa: command not found
[root@li ~]# _abc11122=3 --可以以下划线开头
[root@li ~]# echo $_abc11122
3
5,变量赋值可以有多个 例如 echo $PATH ,以":"分隔
6,变量的获取方式: $变量名 ${变量名}
[root@li ~]# echo $a
3
[root@li ~]# echo ${a}
3
[root@li ~]# echo ${a}
12345
[root@li ~]# echo ${a:1:2} --切片的方式:1表示从第二个开始,2表示截2个字符
23
[root@li ~]# echo ${a:2:2}
34
+++++++++++++++++++++++++++++++++++++++++++++++++++++++
本地变量:当前用户自定义的变量。只在当前有效。
[root@desktop8 ~]# HI=hello
[root@desktop8 ~]# echo $HI
hello
[root@desktop8 ~]# su - student
[student@desktop8 ~]$ echo $HI (其他用户无效)
环境变量:设置一个变量,能够被其它应用程序调用到
[root@desktop8 ~]# env | grep HI (env 查看系统环境变量)
HISTSIZE=1000
HISTCONTROL=ignoredups
[root@desktop8 ~]# set | grep HI (set 查看系统当前所有变量)
HI=hello
HISTCONTROL=ignoredups
HISTFILE=/root/.bash_history
HISTFILESIZE=1000
HISTSIZE=1000
[root@desktop8 ~]# export HI
[root@desktop8 ~]# env | grep HI
HISTSIZE=1000
HI=hello
HISTCONTROL=ignoredups
全局变量:全局所有的用户和程序都能调用,且继承,新建的用户也默认能调用。
echo $PATH $HOME $EUID
[root@desktop8 ~]#vim /etc/profile
HI=hello
if [ "HISTCONTROL" = "ignorespace"] ; then
export HISTCONTROL=ignoreboth
else
export HISTCONTROL=ignoredups
fi
export PATH USER LOGNAME MALL HOSTNAME HISTSIZE HISTCONTROL HI
[root@desktop8 ~]# source /etc/profile 即刻生效
[root@desktop8 ~]# su - student
[student@desktop5 ~]$ echo $HI
hello