Bash变量
1.什么是变量?
变量是计算机的内存单元,里面可以存储值。
2.变量设置规则
(1)字母、数字、下划线,但是不能以数字开头
(2)在Bash中,变量的默认类型都是字符串型,如果需要进行数值运算,则必须指定变量类型为数值型。
(3)变量用等号连接时候,等号左右不能有空格
(4)如果变量的值里有空格,则需要用引号括起来
(5)变量的值中可以用\作为转义符
(6)如果需要增加变量的值,则需要进行变量值的叠加,不过变量需要用双引号包含"$变量名"或用"${变量名}"包含
(7)命令的结果作为变量则需要用 $()
(8)建议环境变量名大写,编译区分
3.变量分类
(1)用户自定义变量
(2)环境变量:主要保存和系统操作相关的数据
(3)位置参数变量:像脚本中传递参数和数据,变量名不能自定义,变量作用是固定的
(4)预定义变量: 是Bash中已经定义号的变量,变量名不能自定义,变量作用也是固定的
4.本地变量(用户自定义变量)
定义:name=smallone
变量叠加: aa=123 aa="$aa"456 也可以 aa=${aa}789
变量调用:echo $变量名
变量查看:set 查看所有变量
变量删除:unset 变量名
5.环境变量
环境变量是什么
用户自定义变量只在当前的She'l'l中生效。二环境变量会在当前shell和这个shell的子shell中生效。如果把环境变量写入响
应的配置文件,那么这个环境变量就会在所有shell中生效
设置环境变量
export 变量名=变量值 pstree可以看进程树,如何定义子shell,在当前shell里打bash
env 查询环境
unset 删除变量
常见环境变量
(1)PATH 系统查找命令的路径。
(2)PS1 提示符,就是你命令行里的提示符,比如 root@root]# 这种 echo $PS1 看当前提示形式
\d \h \t \T \A \u \w \W
6.位置参数变量
$n n为水,$0代表命令本身,$1-9代表第一个到第九个参数,十以上,则需要 ${n} ,目的为了接收用户向程序传递的值
$* 代表命令行中所有参数,把所有参数看作一个整体 它只相当于一个值
$@ 也代表命令行中所有参数,不过$@把每个参数区分对待 它相当于参数数组
$# 代表命令行中所有参数的个数
7.预定义变量
$? 判断上一次执行的命令的返回状态,如果变量值为0 则是正确执行 如果返回不是0 则上个命令没正确执行
$$ 当前进程的PID
$! 后台运行的最后一个进程的PID
在一条命令最后加 & 符号 代表把进程加入后台执行
接收键盘输入
read [选项] [变量名]
-p 提示信息 在等待read输入时,输出提示信息
-t 秒数 read命令会一直等待用户输入,这个可以指定等待时间
-n 字符数 只接受指定字符数,就执行命令
-s 隐藏输入的数据,适用于机密信息的输入
8.数值运算与运算符
declare 声明变量类型
declare [+-] [选项] 变量名
- 给变量设置类型属性
+ 取消变量设置类型属
-i 变量设置为整数型
-x 将变量声明为环境变量
-p 显示指定变量的被声明的类型
使用expr 和let数值运算工具
dd=$(expr $aa + $bb) +号左右两侧必须有空格
推荐使用方法3
$((运算式)) 或者$[运算式]
9.变量测试与内容替换