Bootstrap

第三节SHELL脚本中的变量与运算(1.1-1.5)

一,脚本中的变量
1,1什么是变量
  • 在编写程序是,通常会遇到被操作对象不固定的情况
  • 我们需要用一串固定的字符来的表示不固定的值,这就是变量存在的根本意义
  • 变量的实现原理就是内存存储单元的一个符合名称
1,2 变量的命名规则

变量的名称中只能包含数字,大小写字母以及下划线

变量的名称只能用大小写字母及下划线开头

同一名称变量在多此被赋值时为覆盖动作

在企业代码规范化中变量的命名规则如下

#简短全大写变量名
OPENLAB
#首字母大写子类变量名
Openlab_Shell
#驼峰类型变量
kubernetes_Api
1,3变量的调用方法
$EASYLEE #表示取$EASYLEE这个变量的值
EASYLEE=1
echo $EASYLEE
#系统弹出
1

[!note]

  • 如果我们表示1b
    • $EASYLEEb 这个变量调用方式是使用EASYLEEb这串字符变量的值
    • ${EASYLEE}b 如果需要在字符串中特别说明那些字符表示变量那些字符不是,需要变量声明 ${}
  • 查看系统中的所有变量可以使用env
  • 查看系统中所有变量或函数可以使用set命令或declare
1,4字符的转义及引用
  • 在shel中很多本身有特殊的字符,比如空格井号等等
  • 如果在变量赋值或执行命令使用我们只想使用这些符号本身就需要用转义或引用
  • 在shell中反斜杠表示转义,每个反斜杠只能转义一个字符
  • 在shell中单引号表示强引用,我们可以把它看作批量转义,在单引号内的所有字符都被视为字符本身
  • 在shell中双引号表示弱引用,其和单引号的区别在于不能引用(`,,!,$)

代码示例如下

echo \#
#系统输出
#
#结束

echo \# #
#

echo \# \#
# #

echo"# #"
# #
echo "$5"


echo '$5'
$5
1,5变量的类型

从变量的作用范围划分,变量分为函数级变量,环境级变量,用户级变量和系统变量

函数级变量只在函数内生效通常用local来定义

vim test.sh
#在vim
#!/bin/bash
ACTION(){
local a=1
echo $a
}
ACTION()
echo $a
#sh test.sh
1
#第二号显示为空

环境级变量只在在当前运行的shell中生效,shell关闭变量被释放

export a=1
vim test.sh
#在vim
#!/bin/bash
echo $a
#:wq
sh test.sh
显示为空

用户级变量只有登录系统的指定用户,此变量才生效

useradd lee
vim ~lee/.bash_profile
#在vim中
export a=1
#:wq
vim /mnt/test.sh
sh	/mnt/test.sh
#系统弹出
1

[!note]

在系统中通常设置系统变量是编辑文件更安全

文件修改完需要用source命令使其生效

;