LINUX学习笔记
Shell脚本_Bash的变量
1. Bash的变量含义
2. 变量设置规则
3. 变量分类
1. Bash的变量含义
- 变量
计算机内存的单元,其中存放的值可以改变。当shell脚本需要保存一些信息时,如一个文件名或是一个数字,就把它存放在一个变量中。每个变量有一个名字,所以很容易引用它。使用变量可以保存有用的信息,使系统获知用户相关设置,变量也可以用于保存暂时信息。
2. 变量设置规则
-
变量名称可以由字母,数字,下划线组成,但是不能以数字开头。
-
在Bash中,变量的默认类型都是字符串型,如果要进行数值运算,则必须指定变量类型为数值型。
-
变量使用等号连接,等号左右两端不能有空格
-
变量的值如果有空格,需要使用单引号或双引号
-
在变量的值中,可以使用\转义符
-
如果需要增加变量的值,那么可以进行变量值得叠加。但是变量需要用双引号包含“ 变 量 名 ” 或 用 变量名”或用 变量名”或用{变量名}包含
-
如果是把命令的结果作为变量值赋予变量,则需要使用反引号或$()包含命令
-
建议:环境变量名设为大写,便于区分
3. 变量分类
① 用户自定义变量
- 用户自定义变量名称和变量的值,也称为本地变量。只在当前的shell中生效。
- 变量定义:name=”gloria huo”
- 变量调用:echo $name
- 变量叠加:cc=” c c ” 789 ; c c = cc”789; cc= cc”789;cc={cc}123;
- 变量查看:set
- 变量删除:unset name
② 环境变量
-
主要保存与系统操作环境相关的数据;有一部分与系统相关的变量名称不能更改,但是变量的值,可以更改;而且可以手动添加新的变量名和变量值。
-
在当前shell和这个shell的所有子shell中生效。如果把环境变量写入相应的配置文件,那么这个环境变量就会在所有的shell中生效;
-
设置环境变量
声明变量:export 变量名=变量值
查询变量:env
删除变量:unset 变量名
调用变量:echo $变量名
确定进程树:pstree -
系统常见环境变量:
-
PATH:系统查找命令的路径
PATH变量叠加:PATH=”$PATH”:/root/sh
注意:变量叠加为临时操作,一旦重启,就会消失,要想永久生效,需要将命令写入对应的配置文件 -
PS1: 定义系统提示符的变量
\d: 显示日期,格式为“星期 月 日”
\h 显示简写主机名,如默认主机名“localhost”
\t: 显示24小时制时间,格式“HH:MM:SS”
\T: 显示12小时制时间,格式“HH:MM:SS”
\A: 显示24小时制时间,格式“HH:MM”
\u: 显示当前用户名
\w: 显示当前所在目录的完整名称
\W: 显示当前所在目录的最后一个目录
#: 执行的第几个命令
$: 提示符。如果是root用户会显示提示符为”#“,如果是普通用户会显示提示符为“$”
-
③ 位置参数变量
-
这种变量主要是用来向脚本当中传递参数或数据的,变量名不能自定义,变量作用固定。
-
例子1
-
例子2
-
例子3
④ 预定义变量
- 是Bash中已经定义好的变量,变量名不能自定义,变量作用也是固定的。
- 使用格式: echo $?
接收键盘输入
-
命令格式:read [选项][变量名]
-
选项:
-p: “提示信息”:等待read输入时,输出提示信息
-t 秒数:read命令会一直等待用户输入,使用此选项可以指定等待时间
-n字符数:read命令只接受指定的字符数,就会执行
-s: 隐藏输入的数据。适用于机密信息的输入。 -
例子
【注】:个人学习笔记,如有错误,望不吝赐教,这厢有礼了~~~