1、什么是shell 变量
2、变量的类型
自定义变量、环境变量、 位置变量、 预定义变量
2.1. 自定义变量
- 定义变量: 变量名=变量值,变量名必须以字母或下划线开头,区分大小写,比如:
ip1=192.168.2.1
变量类型 |
变量说明 |
引用变量 |
{变量名} |
查看变量 |
echo $变量名 set | (所有变量:包括自定义变量和环境变量) |
取消变量 |
unset 变量名 |
作用范围 |
仅在当前 shell 中有效 |
2.2. 环境变量
- 定义环境变量
- 方法一
export
back_dir2=/home/backup
- 方法二
export
back_dir1 将自定义变量转换成环境变量
环境变量类型 |
变量说明 |
引用环境变量 |
{变量名} |
查看环境变量 |
echo $变量名 env 例如 env |grep back_dir2 |
取消环境变量 |
unset 变量名 |
变量作用范围 |
在当前 shell 和子 shell 有效 |
C 语言 局部变量 vs 全局变量
SHELL 自定义变量 vs 环境变量
2.3. 位置变量
$1 $2 $3 $4 $5 $6 $7 $8 $9 ${10}
2.4. 预定义变量
标识符号 |
符号作用说明 |
$0 |
脚本名 |
$* |
所有的参数 |
$@ |
所有的参数 |
$# |
参数的个数 |
$$ |
当前进程的 PID |
$! |
上一个后台进程的 PID |
$? |
上一个命令的返回值 0 表示成功 |
3、 局部变量
- 3.1、定义变量时,使用local关键字
- 3.2、函数内和外若存在同名变量,则函数内部变量覆盖外部变量
4、全局变量
- 4.1、不做特殊声明,Shell中变量都是全局变量
- 4.2、大型脚本程序中函数中慎用全局变量
网友评论