linux下shell中的变量分类(包括环境级变量、用户级变量、系统级变量)

1.什么是变量(内存当中一片区域的地址)?

  1. 变量即在程序运行过程中它的值是允许改变的量
  2. 变量是用一串固定的字符来标示不固定的值的一种方法
  3. 变量是一种使用方便的占位符,用于引用计算机内存地址,该地址可以存储 Script 运行时可更改的程序信息
  4. 在 shell中变量是不能永久保存在系统中的,必须在文件中声明

变量是一种使用方便的占位符,用于引用计算机内存地址,该地址可以存储Script运行时可更改的程序信息 例如,可以创建一个名为Click Count的变量来存储用户单击Web页面上某个对象的次数
使用变量并不需要了解变量在计算机内存中的地址,只要通过变量名引用变量就可以查看或更改变量的值 在VB Script中只有一个基本数据类型,即Variant,因此所有变量的数据类型都是Variant

在这里插入图片描述

2. shell 脚本中变量的种类

在 shell 中变量分为环境级变量、用户级变量、系统级变量这三种

  • 环境级变量只在当前 shell 中生效, shell 关闭变量丢失
  • 用户级变量写在用户的骨文件(.bash_profile)中,只针对当前用户生效,切换用户后就不再生效 系统级变量被写在系统的配置文件
  • /etc/profile 或者 /etc/profile.d/ 中,对于所有用户都生效

环境级变量只在当前 shell 中生效, shell 关闭变量丢失 直接在shell当中设置
用户级变量写在用户的骨文件中,只针对当前用户生效 用户的骨文件一般都在用户的家目录下面(ls -a
查看隐藏的文件).bash_profile cd /etc/skel这个目录下面存放的是新建用户的骨文件,也是隐藏文件
系统级变量被写在系统的配置文件 /etc/profile 或者 /etc/profile.d/ 中,对于所有用户都生效

3.三种变量的设定方法

环境级变量:只针对当前shell生效
(1)a=2在当前shell中定义变量a=2
在这里插入图片描述
(2)vim test.sh编辑测试的脚本
在这里插入图片描述
在这里插入图片描述

  • sh test.sh没有,因为当前的shell是bash(a在这个shell里面),sh这个shell里面没有a
  • echo $a可以看到a的值
  • ps 可以看到当前环境是bash
  • export a=1使得所有的shell环境均识别这个a的值
  • sh test.sh可以看到a的值
  • exit关闭当前的shell

在这里插入图片描述

重新打开一个shell
sh test.sh 就没有a的值

在这里插入图片描述
用户级变量,只针对当前的用户有效(写在当前用户的骨文件当中)
(1)ls -a 可以查看家目录下面的所有所有隐藏文件(以.开头的文件)
在这里插入图片描述
(2)vim .bash_profile(编辑用户级的变量配置文件)
在这里插入图片描述
加入:
export a=5

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
系统级的变量:写在系统的配置文件/etc/profile中,对所有的用户都生效
(1)vim /etc/profile(编辑系统变量的配置文件)
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
su - student(系统级和用户级两个都读,切换用户身份以及用户在的环境)
su student(只读系统级一个,只切换用户身份)

系统级和用户级之间的关系:哪个的文件被随后读取,查看的就是哪个文件里面的值shell的命令行也属于一个变量,也可以进行修改

发布了111 篇原创文章 · 获赞 0 · 访问量 2543

猜你喜欢

转载自blog.csdn.net/qq_42024433/article/details/104318109