Linux变量
一、变量体系
1.1 变量分类
1. 按作用域划分
- 环境变量:全局可见的配置参数,如
PATH
(命令搜索路径)。 - Shell变量:局部作用域的临时存储,仅在当前 Shell 会话有效。
2. 按生命周期划分
- 临时变量:
export TEMP_VAR="test"
(随 Shell 进程终止而消亡) - 永久变量:写入
~/.bashrc
或/etc/profile
的持久化配置
3. 按用户权限划分
- 用户级变量:
~/.bash_profile
中的个性化设置 - 系统级变量:
/etc/environment
中的全局配置
1.2 变量类型表
变量类型 | 典型代表 | 作用场景 | 生命周期 |
环境变量 | PATH, HOME | 系统全局配置 | 永久/临时 |
位置参数变量 | $1, $2 | 脚本参数传递 | 脚本执行期间 |
预定义变量 | $$, $? | 进程管理/状态获取 | 实时生效 |
用户自定义变量 | MY_APP_CONFIG | 应用配置管理 | 可配置 |
二、变量操作
2.1 基础操作四式
# 定义变量(注意等号两侧无空格)
PYTHON_VER="3.9"
# 定义环境变量
export JAVA_HOME="/opt/jdk11"
# 查看变量值
echo ${PYTHON_VER}
# 删除变量
unset TEMP_CACHE
2.2 高阶操作秘籍
1. 只读防护锁
readonly API_KEY="sk-xxxx"
2. 数组
# 定义日志文件数组
log_files=("/var/log/syslog" "/var/log/nginx/access.log")
# 遍历处理
for file in "${log_files[@]}"; do
gzip ${file}
done
3. 环境变量注入
在执行的命令前面加上变量定义,该变量只在该命令中作为环境变量生效。
DEBUG_MODE=1 python3 app.py # 单次命令环境变量注入
三、特殊变量
3.1 脚本参数
变量符号 | 效果 | 应用场景 |
$0 | 脚本本体名称 | 自检脚本 |
$# | 参数个数统计器 | 参数合法性校验 |
$* | 参数聚合器(字符串模式) | 批量传递参数 |
$@ | 参数分解器(数组模式) | 逐个处理参数 |
$? | 命令退出状态检测器 | 错误处理流程控制 |
Comments NOTHING