shell变量

  • 变量介绍
在编程中,我们有一些数据需要临时存放在内存,以待后续使用时快速读出。
内存在系统启动的时候按照1B一个单位划分为若干个块,然后统一编号(16进制编号),并对内存的使用情况做记录,保存在跟踪表中。
计算机的单位:
1B=8bit
1KB=1024B
1MB=1024KB
1GB=1024MB
1TB=1024GB
1PB=1024TB
1EB=1024PB
1ZB=1024EB
……
还有YB、BB更大的单位,同样进制也是1024.

1G=1024*1024*1024=1073741824B

变量:变量是编程中最常用的一种临时在内存中读取数据的一种方式。
0x1 0x2 0x3 0x4 0xN
0x代表16进制,N代表第N个位置。(128G内存后使用48位表示)
变量是在内存的0xN的位置上起一个逻辑的名字。(读取内存逻辑名字的物理位置上的内容)
逻辑名字锚定了内存上的一块空间,读取逻辑变量名字的时候就会将这个名字对应位置里的数据读取出来。
#在脚本中定义变量存值的时候的变化:
1:内存占用:如果存的是一个字符则占用1个字节,如果存的是字符串则是字符串的长度加1个字节长度(\0是一个特殊字符,代表字符串结束)。
2:变量名与内存空间关系:计算机中会将对应的内存空间和变量名称绑定在一起,此时代表这段内存空间已经被程序占用,其他程序不可复用;然后将变量名对应的值存在对应内存地址的空间里。

理解变量存储:STRING1="ABC"
1)STAING1(逻辑地址) <==> 0x5...0x8(物理地址)    存储数据 ABC
2)对于人来说STRING1上存的数据是ABC,对于计算机来说数据是存在物理地址上的;
3)在建立变量的时候计算机自动将逻辑地址(变量名)和物理地址做了对应。
变量读出
1)当调用STRING1的时候,计算机会根据对应关系,找到物理地址
2)定位内存地址,读出数据并返回
  • 变量分类
    1:本地变量:用户私有变量,只有本地用户用户可以使用,保存在家目录下的.bash_profile、.bashrc文件中
    2:全局变量:所有用户都可以使用,保存在/etc/profile、/etc/bashrc文件中
    3:用户自定义变量:用户自定义,比如脚本中的变量
  • 定义变量
    变量格式:变量名=值 #(你的名字与身份证号)
    在shell编程中的变量名和等号之间不能有空格。
变量名命名规则:
	命令只能使用英文字母,数字和下划线,首个字符不能以数字开头。
	中间不能有空格,可以使用下划线(_)。
	不能使用标点符号。
	不能使用bash里的关键字(可用help命令查看保留关键字)。

VAR1=1
age=2
name=‘baism’ #注意:字符串要用单引号或双引号引起来
score=292.0
#编写脚本时建议变量名使用大写避免冲突(shell是区分大小写的)(你可以把)
[root@flag ~]# NAME=“baism”
[root@flag ~]# SCHOOL=‘ayitula’
[root@flag ~]# AGE=30
[root@flag ~]# SOURE=29.9

  • 读取变量内容
    读取变量内容符:$
    读取方法:$变量名
变量内容读出
[root@flag ~]# echo $NAME
baism
[root@flag ~]# echo $SCHOOL
ayitula
[root@flag ~]# echo $AGE
30
[root@flag ~]# echo $SOURE
29.2

  • 取消变量unset
    在这里插入图片描述
#本地变量
[root@flag ~]# vim ~/.bash_profile 
NAME=flag2920
[root@flag ~]# source ~/.bash_profile
[root@flag ~]# echo $NAME
flag2920
[root@flag ~]# unset NAME
[root@flag ~]# echo $NAME
				 #重启系统后(或者直接使用source命令或重新登陆用户)会重新加载.bash_profile里的内容(相当于临时取消)
全局变量
vim /etc/profile
export NAME='flag2920'		#若不写export则是本地变量

写在配置文件就是永久变量,写在终端就是临时变量
#ls -lrt | tail -1

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值