一、用户自定义变量(本地名)
用户自定义变量只有在当前的shell中生效
1 定义变量
name="zheng huiwei"
aa=123
2 变量叠加
aa="$aa"456
aa=${aa}789
3 变量调用
echo $name
echo $aa
4 变量查看
set
5 变量删除
unset name
unset aa
二、环境变量
保存的是和系统操作环境相关的数据,
环境变量会在当前shell和这个shell的所有子shell当中生效,如果把环境变量写入相应的配置文件,那么这个环境变量就会在所有的shell中生效。
使用命令:bash可以建立子shell,使用命令:pstree确定进程数
1 申明变量
export 变量名=变量值
或
变量名=变量值
export 变量名
2 查询变量
env
3 删除变量
unset 变量名
4 系统常见环境变量
(1)PATH:系统查找命令的路径
# echo $PATH
/usr/lib/qt-3.3/bin: /usr/local/sbin/: usr/local/bin: /sbin: /bin: /usr/sbin: /usr/bin: /root/bin
注:可以将自己的脚本位置添加到PATH系统查找命令路径之下
例如我的脚本在/home/zhw/sh/hello.sh中,使用变量叠加命令
PATH="$PATH":/home/zhw/sh 将脚本位置添加到系统查找命令路径下
(2)PS1:定义系统提示符的变量
提示符 | 功能 | 格式 |
\d | 显示日期 | “星期 月 日” |
\h | 显示简写主机名 | 默认“localhost” |
\t | 显示24小时制时间 | “HH:MM:SS” |
\T | 显示12小时制时间 | “HH:MM:SS” |
\A | 显示24小时制时间 | “HH:MM” |
\u | 显示当前用户名 | |
\w | 显示当前所在目录的完整名称 | |
\W | 显示当前所在目录的最后一个目录 | |
\# | 显示执行的是第几个命令 | |
\$ | 提示符 |
root用户提示“#” 普通用户提示“$” |
例:
三、位置参数变量
用来向脚本当中传递参数或数据,变量名不能自定义,变量作用是固定的
位置参数变量 | 作用 |
$n |
$0代表命令本身 $1-$9代表第1个到第9个输入参数 ${10} |
$* | $*把所有的参数看成一个整体 |
$@ | $@把每个参数区分对待 |
$# | 命令行中所有参数的个数 |
四、预定义变量
在Bash中已经定义好的变量,变量名不能自定义,变量作用也是固定的
1 预定义变量
预定义变量 | 作用 |
$? |
最后一次执行的命令的返回状态 返回0:上一条命令执行正确 返回非0:上一条命令执行错误 |
$$ | 当前进程的进程号(PID) |
$! | 后台最后一个进程的进程号(PID) |
例:$?
例:$$、$!
2 键盘输入接收
read [选项] [变量名]
-p [显示信息] 在等待read输入时,输出提示信息
-t [秒数] 指定read输入等待时间
-n [字符数] 指定read只接收n个字符输入
-s 隐藏输入数据
例