Linux学习笔记——bash、shell(bash)用户自定义变量、Shell环境变量设置方法详解

声明本文参考C语言中文网和Linux命令大全
变量是存储设备中的一些可读写的存储单元,利用变量可以保存暂时的信息。在Linux中,变量主要分为环境变量、一些与bash操作接口有关的变量,以及用户自定义变量。

一、变量设置规则
1.变量名可以由字母、数字和下画线组成,但是不能以数字开头。如果变量名是"2name",则是错误的。
在这里插入图片描述
2.在 Bash 中,变量的默认类型都是字符串型,如果要进行数值运算,则必须指定变量类型为数值型
在这里插入图片描述
3. 变量用等号"=“连接值,”=“左右两侧不能有空格。这是 Shell 语言特有的格式要求。在绝大多数的其他语言中,”=“左右两侧是可以加入空格的。但是在 Shell 中命令的执行格式是"命令 [选项] [参数]”,如果在"="左右两侧加入空格,那么 Linux 会误以为这是系统命令,是会报错的
在这里插入图片描述
在这里插入图片描述
4. 变量值中如果有空格,则需要使用单引号或双引号包含,如 test=“hello world!”。双引号括起来的内容"$"和反引号者都拥有特殊含义,而单引号括起来的内容都是普通字符。
在这里插入图片描述
在这里插入图片描述
5. 在变量值中,可以使用转义符""。
在这里插入图片描述
6.如果需要増加变量值,那么可以进行变量叠加
增加值一般有两种方式,(1)、$变量名、
例如
在这里插入图片描述
(2)${变量名}
例如
在这里插入图片描述
7.如果要把命令的执行结果作为变量值赋予变量,则需要使用反引号或 $() 包含命令。
在这里插入图片描述
在这里插入图片描述
或者
在这里插入图片描述
8.环境变量名建议大写,便于区分

二、shell(bash)用户自定义变量
用户自定义变量是最常用的变量类型,其特点是变量名和变量值都是由用户自由定义的。
在上面的变量设置规则中定义的name就是一个用户自定义变量。那么,该如何定义变量呢?其实在上面已经演示过了就是变量名=变量值,在这里就不再多说了。
接下来说一下定义了一个用户变量该如何查看呐?在上面已经演示过,是使用echo $变量名来调用的。
变量查看:使用set命令可以用来查看系统中的所有变量(用户自定义变量和环境变量)和设定 Shell 的执行环境
语法
set【选项】【参数】
选项

-a:标示已修改的变量,以供输出至环境变量。
-b:使被中止的后台程序立刻回报执行状态。
-C:转向所产生的文件无法覆盖已存在的文件。
-d:Shell预设会用杂凑表记忆使用过的指令,以加速指令的执行。使用-d参数可取消。
-e:若指令传回值不等于0,则立即退出shell。
-f:取消使用通配符。
-h:自动记录函数的所在位置。
-H Shell:可利用"!"加<指令编号>的方式来执行history中记录的指令。
-k:指令所给的参数都会被视为此指令的环境变量。
-l:记录for循环的变量名称。
-m:使用监视模式。
-n:只读取指令,而不实际执行。
-p:启动优先顺序模式。
-P:启动-P参数后,执行指令时,会以实际的文件或目录来取代符号连接。
-t:执行完随后的指令,即退出shell。
-u:当执行时使用到未定义过的变量,则显示错误信息。
-v:显示shell所读取的输入值。
-x:执行指令后,会先显示该指令及所下的参数。

参数
取消某个set曾启动的参数。
例如 set
在这里插入图片描述
在这里插入图片描述
变量删除:要想删除自定义变量,可以使用 unset 命令
语法
unset 【选项】【参数】
选项

-f:仅删除函数;
-v:仅删除变量。

参数
shell变量或函数:指定要删除的shell变量或shell函数。
例如
Linux学习笔记——bash、shell(bash)用户自定义变量、Shell环境变量设置方法详解_第1张图片
三、Shell环境变量设置方法详解
环境变量和用户自定义变量最主要的区别在于,环境变量是全局变量,而用户自定义变量是局部变量。用户自定义变量只在当前的 Shell 中生效,而环境变量会在当前 Shell 和这个 Shell 的所有子 Shell 中生效。如果把环境变量写入相应的配置文件,那么这个环境变量就会在所有的 Shell 中生效。

如果环境变量不写入配置文件,那么当前 Shell 一旦终止,这个环境变量就会消失,而只有写入配置文件才会永久地在所有 Shell 中生效。

在 Linux 中一般通过环境变量配置操作系统的环境,如提示符、查找命令的路径、用户家目录等,这些系统默认的环境变量的变量名是固定的,我们只能修改变量的值。
当然,我们也可以手工定义环境变量,不过这些自定义的环境变量不能修改操作系统环境,其只是一个全局变量而已。
环境变量设置
在这里插入图片描述
可见配置环境变量就是在变量名前加export。

export命令用于将shell变量输出为环境变量,或者将shell函数输出为环境变量。
语法
export【选项】【参数】
选项

-f:代表[变量名称]中为函数名称;
-n:删除指定的变量。变量实际上并未删除,只是不会输出到后续指令的执行环境中;
-p:列出所有的shell赋予程序的环境变量。

参数
变量:指定要输出或者删除的环境变量
例如前面把name设为环境变量后可以痛export进行查看
在这里插入图片描述
在这里插入图片描述
除了可以使用export来查询外,还可以使用env命令和set命令来查询
例如用set命令查找
Linux学习笔记——bash、shell(bash)用户自定义变量、Shell环境变量设置方法详解_第2张图片
例如用env命令查找
Linux学习笔记——bash、shell(bash)用户自定义变量、Shell环境变量设置方法详解_第3张图片
注意:env 和 set 命令是有区别的,它们的区别是,set 命令可以查看所有变量,而 env 命令只能查看环境变量。

最后如果不想用自己定义的环境变量name时,可以使用unset进行删除
在这里插入图片描述
在这里插入图片描述
可以发现已经删除。

你可能感兴趣的:(Linux学习笔记——bash、shell(bash)用户自定义变量、Shell环境变量设置方法详解)