1.1.什么是变量
在编写程序时,通常会遇到被操作对象不固定的情况
我们需要用一串固定的字符来表示不固定的值这就是变量存在的根本意义变量的实现原理就是内存存储单元的一个符号名称
1.2.变量的命名规则
变量的名称中只能包含数字、大小写字母以及下划线变量的名称只能用大小写字母及下划线开头同一名称变量在多次被赋值时为覆盖动作在企业代码规范化中变量的命名规则如下
OPENLAB
OPENLAB_SHE11
KUBERNETES_API
1.3变量的调用方法
EASYEE=1
echo $EASYLEE
如果我们想表示1b
$EASYLEED这个变量调用方式是使用EASYLEEb这串字符变量的值
$(EASYLEE}b 如果需要在一串字符中特别说明那些字符表示变量那些字符不是,那么需要用变量声明$(}
查看系统中的所有变量可以使用 env
查看系统中所变量或函数可以使用set命令或declare
1.4z字符的转义及引用
在shell中有很多本身有特殊功能的字符,比如空格井号等等
如果在给变量赋值或执行命令使用时我们只想使用这些符号本身那么就需要用到转义或引用
在shell中反斜杠表示转义,每个反斜杠只能转义一个字符
在shell中单引号表示强引用,我们可以把它看作批量转义,在单引号内的所有字符被视为字符本身
在shell中双引号表示弱引用,其和单引号的区别在于不能引用(\!$)
echo \#
echo \# #
echo \# \#
echo "# #"
echo "$S"
echo '$S'
1.5变量的类型
从变量的作用范围来划分,变量分为函数级变量,环境级变量,用户级变量和系统级变量函数级变量只在函数内生效通常用local来定义
vim test.sh
#!/bin/bash
ACTION(){
1ocal a=1
echo $a
}
ACTION
echo $a
#sh test.sh
1
第二行显示为空
环境级别变量只在当前运行的shel中生效,shel关闭变量被释放
[root@lee ~]# export a=1
[root@lee ~]# vim test.sh#!/bin/bash
echo $a
[root@lee ~]# sh test.sh
1
[root@lee ~]# exit
1ogout
[root@lee ~# sh test.sh
显示为空
用户级变量只有登录系统的指定用户,此变量才生效
[root@lee ~]# useradd lee
[root@lee ~]# vim ~lee/.bash_profile
export a=1
[root@lee ~]# vim /mnt/test.sh
[root@lee ~# sh /mnt/test.sh
显示为空
[root@lee ~]# su - lee
[lee@lee ~$ sh /mnt/test.sh
1
系统级变量是系统中的永久设定,所有用户都可以使用,系统变量通常被保存到/etc/profile中
]# vim /etc/profile.d/a.sh
#!/bin/bash
export b=l
[root@lee ~]# source /etc/profile.d/a.sh
[root@lee ~]# vim /mnt/test.sh
#!/bin/basht
echo $b
[root@lee ~]# sh /mnt/test.sh
1