1.变量简介

1.1作用:

存放系统和用户需要使用的特定参数
变量名:使用固定名称,由系统预设或用户定义
变量值:能够根据用户设置、系统环境的变化而变化

1.2类型:

①自定义变量:由用户自定义,修改和使用
②特殊变量:环境变量,只读变量,位置变量,预定义变量

2.操作

2.1定义一个变量

变量名=变量值
变量名以字母或下划线开头 ,区分大小写,建议全大写

2.2查看变量值

echo $变量名

2.3赋值时使用引号

双引号:允许使用 $ 符号引用其他变量值
单引号:禁止引用其他变量值,$ 视为普通字符
反撇号:命令替换,提取命令执行后的输出结果

2.4设置变量的作用范围

格式1:export 变量名
格式2:export 变量名=变量值
##设置为全局变量,当前用户的所有bash都可以生效##

2.5查看系统中已有变量

env

2.6整数变量的运算

expr 变量1 运算符 变量2 运算符 变量3
##可执行多次计算##

常用运算符
加法运算:+
减法运算:-
乘法运算:*
除法运算:/
求模(取余)运算:%
直接运算数字

expr 3+4
echo $((3+4))  ##*无需转义符
echo $[3+4]    ##*无需转义符

3.特殊变量

3.1环境变量

系统已提前创建好,用于设置用户工作环境
文件:/etc/profile
~/.bash_profile
常见环境变量:pwd、path、user、shell

3.2只读变量

需设置

name=cloud
readonly name
##设为只读,不可修改,不可删除##
删除变量:
unset name

3.3位置变量

指定第n个参数
$n:n为1-9之间数字
例:

./aa.sh one two three
##./aa为$0、one为$1、two为$2、three为$3

3.4预定义变量

$#:命令行中位置变量的个数
$*:所有位置变量的内容
$?:上一条命令执行后返回的状态,当返回状态值为0时表示执行正常,非0值表示执行异常或出错
$0:当前执行的进程/程序名
注: $@和 $@类似,在shell中,都表示命令行所有参数,但 $ *将命令所有参数堪称一个整体,而 $@则区分各个参数