6、Shell的变量
2019-11-27 本文已影响0人
爱学习的蹭蹭
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、大型脚本程序中函数中慎用全局变量