跳到主要内容

Linux 变量操作速查表

变量基础操作

操作语法描述示例
定义变量变量名=值创建变量(无空格)name="John"
读取变量$变量名${变量名}获取变量值echo $name
只读变量readonly 变量名设置变量为只读readonly PI=3.14
删除变量unset 变量名删除变量unset temp_var
查看所有变量setdeclare显示所有变量set | grep USER

变量作用域

类型设置方法作用范围示例
局部变量变量名=值当前shelllocal_var="test"
环境变量export 变量名=值所有子进程export PATH=$PATH:/bin
全局变量在配置文件中定义所有shell会话/etc/profile 中定义

特殊变量

变量描述示例输出
$0当前脚本名称./script.sh
$1-$9脚本参数1-9参数值
$#参数个数3
$@所有参数(数组)arg1 arg2 arg3
$*所有参数(字符串)arg1 arg2 arg3
$?上条命令退出状态0(成功)
$$当前进程PID12345
$!后台最后一个进程PID12346

字符串操作

操作语法描述示例
获取长度${#变量名}字符串长度${#name}4
子字符串${变量名:起点:长度}提取子串${name:0:2}Jo
删除前缀${变量名#模式}最短匹配删除前缀${path#/}usr/bin
删除后缀${变量名%模式}最短匹配删除后缀${file%.txt}document
替换${变量名/模式/替换}第一次替换${str/old/new}
全局替换${变量名//模式/替换}全部替换${str// /_}

数组操作

操作语法描述示例
定义数组数组名=(值1 值2 值3)创建数组fruits=("apple" "banana")
访问元素${数组名[索引]}获取元素${fruits[0]}apple
所有元素${数组名[@]}所有元素${fruits[@]}
数组长度${#数组名[@]}元素个数${#fruits[@]}2
添加元素数组名+=(值)追加元素fruits+=("orange")

变量扩展

扩展方式语法描述示例
默认值${变量:-默认值}空时使用默认值${NAME:-"Guest"}
赋值默认值${变量:=默认值}空时赋值默认值${COUNT:=0}
错误检查${变量:?错误信息}空时报错退出${CONFIG:?"未配置"}
存在检查${变量:+替代值}非空时使用替代值${DEBUG:+"debug模式"}

环境变量常用命令

命令描述示例
export设置环境变量export JAVA_HOME=/opt/java
env显示所有环境变量env | grep PATH
printenv显示环境变量printenv USER
set显示所有变量(包括环境变量)set | less
unset删除变量unset TEMP_VAR

常用环境变量

变量描述典型值
PATH可执行文件搜索路径/usr/bin:/bin
HOME用户家目录/home/username
USER当前用户名username
SHELL当前shell/bin/bash
PWD当前工作目录/home/user/project
LANG系统语言en_US.UTF-8

实用示例

# 1. 变量定义和使用
name="Alice"
echo "Hello, $name!" # Hello, Alice!

# 2. 命令行参数处理
echo "脚本名: $0"
echo "第一个参数: $1"
echo "参数个数: $#"

# 3. 字符串操作
filename="document.txt.backup"
echo "无后缀: ${filename%%.*}" # document
echo "主文件名: ${filename%.*}" # document.txt
echo "后缀: ${filename##*.}" # backup

# 4. 数组操作
colors=("red" "green" "blue")
echo "第一个颜色: ${colors[0]}" # red
echo "所有颜色: ${colors[@]}" # red green blue

# 5. 默认值设置
read -p "输入用户名: " username
final_user="${username:-anonymous}"
echo "欢迎, $final_user!"

配置文件位置

文件描述
~/.bashrc用户bash配置(交互式shell)
~/.bash_profile用户登录配置
~/.profile用户配置文件
/etc/profile系统全局配置
/etc/environment系统环境变量

💡 提示:修改配置文件后使用 source ~/.bashrc. ~/.bashrc 立即生效