1.shell变量介绍
- Linux Shell中的变量分为: 系统变量 和 用户自定义变量
- 系统变量:$HOME、$PWD、$SHELL、$USER等等, 比如 echo $HOME
- 显示当前shell所有变量 :set
2.自定义变量
2.1 语法规则
# 基本语法
1. 定义变量: 变量名=值
2. 撤销变量: unset变量
3. 声明静态变量: readonly变量, 注意:不能unset
# 多行注释
:<<!
注释的内容
!
# 定义变量的规则
1. 变量名称可以由字母、数字、和下划线组成,但不能以数字开头。 5A=200(错)
2. 等号两侧不能有空格
3. 变量名称一般习惯为大写,这是一个规范,我们遵守即可
# 将变量的返回值赋值给变量
1. A=`date` 反引号,运行里面的指令,并把结果返回给A变量
2. A=$date 等价于反引号
2.2案例
#!/bin/bash
# 案例1: 定义变量A
A=100
# 输出变量
echo A=$A
echo "A=$A"
# 案例2:撤销变量A
unset A
echo "A=$A"
# 案例3: 声明静态变量B=2,不能unset
readonly B=2
echo "B=$B"
# 将指令返回的结果赋值给变量
C=`date`
D=$(date)
echo "C=$C"
echo "D=$D"
# 使用环境变量
echo "BASH=$bash"
3.环境变量
3.1 语法规则
# 基本语法
1. export 变量名=变量值
2. source 配置文件
3. echo $变量名
3.2案例
# 1.在/etc/profile文件中定义TOMCAT_HOME环境变量
# 2.查看环境变量TOMCAT_HOME的值
vim /etc/profile
export TOMACAT_HOME=/opt/tomcat
4.位置参数变量
4.1 基本语法
# 基本语法
$n (功能描述: n为数字,$0代表命令本身
$1-$9代表第一到第九个参数,十以上的参数,十以上的参数需要用大括号包含,如${10} )
$* (功能描述:这个变量代表命令行中所有的参数,$*把所有的参数看成一个整体)
$@(功能描述:这个变量也代表命令行中所有的参数,不过$@把每个参数区分对待)
$#(功能描述:获取所有输入参数个数,常用于循环)
4.2例子
#!/bin/bash
echo "0=$0 1=$1 2=$2"
echo "所有参数=$*"
echo "$@"
echo "参数的个数=$#"
5.预定义变量
5.1 语法规则
# 基本介绍
就是shell设计者事先已经定义好的变量,可以直接在shell脚本中使用
# 基本语法
$$ (功能描述:当前进程的进程号(PID))
$! (功能描述:后台运行的最后一个进程的的进程号(PID))
$? (功能描述: 最后一次执行的命令的返回状态,如果这个变量值为0,
证明上一个命令执行正确,否则就是不正确)