变量
1. 什么是变量
- 用一个固定的字符串,替代更多更复杂的内容
- 存放在脚本中经常用到的内容 ip 时间
- 变量的本质是内存中的区域 变量名称区域的地址
用一个特定得字符去表示不固定得内容 脚本中可以去调用另一个脚本得公共得变量
2. 变量的命名规则
- 不能以数字开头
- 看见变量 指定做什么的?
- num=40
- 变量表示作用: name=ncs age=18
变量的类型
1. 自定义变量
定义变量: 变量名=变量值 变量名必须以字母或下划线开头,区分大小写
ip1=192.168.2.115
引用变量: $变量名 或 ${变量名}
查看变量: echo $变量名 set(所有变量:包括自定义变量和环境变量)
取消变量: unset 变量名
作用范围: 仅在当前 shell 中有效
2. 环境变量
定义环境变量: 方法一 export back_dir2=/home/backup
方法二 export back_dir1 将自定义变量转换成环境变量
引用环境变量: $变量名 或 ${变量名}
查看环境变量: echo $变量名 env 例如 env |grep back_dir2
取消环境变量: unset 变量名
变量作用范围: 在当前 shell 和子 shell 有效
=======================================================
C 语言 局部变量 vs 全局变量
SHELL 自定义变量 vs 环境变量
=======================================================
3. 位置变量
$1 $2 $3 $4 $5 $6 $7 $8 $9 ${10}
4. 预定义变量
$0 脚本名
$* 所有的参数
$@ 所有的参数
$# 参数的个数
$$ 当前进程的 PID
$! 上一个后台进程的 PID
$? 上一个命令的返回值 0 表示成功
4.1 实例1
vim test.sh
echo "第 2 个位置参数是$2"
echo "第 1 个位置参数是$1"
echo "第 4 个位置参数是$4"
echo "所有参数是: $*"
echo "所有参数是: $@"
echo "参数的个数是: $#"
echo "当前进程的 PID 是: $$"
echo '$1='$1
echo '$2='$2
echo '$3='$3
echo '$*='$*
echo '$@='$@
echo '$#='$#
echo '$$='$$