linux当中如何自定义全局变量teacher的变量的值为张三

linux当中如何自定义全局变量teacher的变量的值为张三,第1张

环境变量(environment variables)一般是指在 *** 作系统中用来指定 *** 作系统运行环境的一些参数,这些参数会对系统行为产生影响。

比如常用的PATH环境变量,当要求系统运行一个程序而没有告诉它程序所在的完整路径时,系统除了在当前目录下面寻找此程序外,还会到PATH中指定的路径去找。你可以在终端使用printenv PATH/echo $PATH查看当前PATH变量的值。

Linux系统下修改/自定义环境变量的方法通常分为两类:临时修改和永久性修改。下面分别介绍两种修改环境变量的方法。在这里以修改linux系统下的PATH环境变量(该环境变量保存了linux系统下所有可执行的程序的目录,linux系统执行某个可执行程序时,会以该环境变量的值(路径)去寻找可执行的程序名)为例进行举例。

PATH环境变量:该环境变量保存了linux系统下所有可执行的程序的目录,linux系统执行某个可执行程序时,会以该环境变量的值(路径)去寻找可执行的程序名,如果找到,则可以执行,如果找不到则会提示:无法找到××命令的错误。

1、临时修改/自定义环境变量

(1)临时自定义环境变量。

注意,系统默认的环境变量名称一般为大写,自定义的环境变量名称一般为小写,这样是为了避免命名上的冲突。

自定义临时环境变量时,有两种办法,一种是在terminal终端命令行直接定义,如下:

在这里插入图片描述

注意,此时自定义的my环境变量的作用范围仅限于当前shell(此时定义的my变量实际上是局部变量),在当前shell的子shell中无法寻找到该自定义变量。直接在其子shell中无法直接使用它。要想在其子shell中使用,必须用export命令来导出它为全局变量。

在这里插入图片描述

如上图所示,在定义my环境变量的子shell中无法识别到my环境变量。

当定义完my环境变量后,利用export命令将其转化为全局变量:

在这里插入图片描述

可以看到,使用export将my环境变量导出成全局变量后,在其子shell中也可以识别到。

**注意!!!!**使用export导出的my环境变量仅仅适用于当前的shell及其衍生shell中,退出当前shell后,my变量将不复存在。所以,这也是该方法被称为临时定义变量的原因。

自定义临时环境变量时,除了在terminal终端命令行直接定义外,还可以使用shell脚本的方法来事先定义好一个环境变量。并用source命令(或者 . 命令)(这么做是因为使用这两个命令是在当前shell中激活该脚本,不会产生子shell)在使用该变量的shell中激活该shell脚本即可。

题主你好,

先说结论: 判断当前用户是否为root.

-----扩展阅读-----

在linux中echo命令说白了就是显示后面内容的:

另外,linux中, 使用"$+变量名"的形式来引用变量:

解释一下上图, 我们先使用a=123定义了一个变量a,它的值为123, 重点来了, 我们想看一下变量a的值, 直接使用echo a这样是不行的, 可以看到,如果这样写,输出的是字符串a,而不是我们期望的变量a的值, 因此正确的形式是echo $a,通过上图可以观察到,这样写成功输出了变量a的值123.

-----

通过上面的铺垫, 题主应该知道echo $UID这条命令中, echo是用来显示UID这个变量的内容的.

而UID是linux系统里的一个全局变量, 它代表的是当前用户的id, 这个id是在我们创建用户的时候分配的,可以看一下/etc/passwd文件, 每行代码一个用户, 其中第三个字段就是该用户相对应的uid:

重要的一点是, 用户与id号是一一对应的, 一般不会出现一个用户有两个id号或是一个id与两个用户相关联的情况. uid为0的用户是root,这个是固定的, 因此常常利用uid的值是否为0来判断当前用户是否为root

=====

希望可以帮到题主, 欢迎追问.


欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/yw/5929105.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-03-08
下一篇2023-03-08

发表评论

登录后才能评论

评论列表(0条)

    保存