SHELL脚本中的变量与运算

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

寒克1

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值