【Linux】Shell 变量的定义与使用方法

在 Linux Shell(如 Bash) 中,变量用于保存字符串、数字或命令结果,方便脚本复用和配置。下面系统讲解 Shell 变量的定义与使用方法 🐧


一、变量的定义

Shell 变量定义的基本语法:

变量名=值

⚠️ 注意:

  • 等号两边不能有空格

示例:

name=Tom
age=20

二、变量的使用

使用变量时需要在变量名前加 $

echo $name
echo $age

输出:

Tom
20

三、变量的命名规则

Shell 变量命名需要遵循:

1️⃣ 只能包含:

  • 字母
  • 数字
  • 下划线

2️⃣ 不能数字开头

❌ 错误:

1name=Tom

3️⃣ 一般使用 大写字母表示常量

PI=3.14

四、变量值包含空格

如果变量值有空格,需要使用 引号

双引号

name="Tom Jerry"
echo $name

输出:

Tom Jerry

单引号

name='Tom Jerry'

区别:

引号特点
单引号 ' '内容原样输出
双引号 " "可以解析变量

示例:

name=Tom
echo "Hello $name"

输出:

Hello Tom

五、变量拼接

如果变量和字符串连在一起,建议使用 花括号

name=Tom
echo ${name}123

输出:

Tom123

否则:

echo $name123

会被认为是变量 name123


六、只读变量

使用 readonly 定义只读变量。

readonly PI=3.14

之后不能修改:

PI=3.1415   # 报错

七、删除变量

使用 unset 删除变量。

name=Tom
unset name

删除后:

echo $name

不会输出内容。


八、环境变量

环境变量可以被 子进程 访问。

使用 export 定义:

export PATH=/usr/bin

示例:

export name=Tom

查看环境变量:

env

或:

printenv

九、命令替换(把命令结果赋值给变量)

两种写法:

方法1:反引号

date=`date`

方法2(推荐)

date=$(date)

示例:

now=$(date)
echo $now

十、变量类型(Shell默认都是字符串)

Shell 中默认变量类型:

字符串

如果要进行 数值运算

a=10
b=20

echo $((a+b))

输出:

30

十一、位置参数变量

Shell 脚本可以接收参数:

./test.sh a b c

变量含义:

变量含义
$0脚本名
$1第1个参数
$2第2个参数
$#参数个数
$@所有参数

示例脚本:

#!/bin/bash

echo "script name: $0"
echo "first arg: $1"
echo "second arg: $2"
echo "total args: $#"

运行:

./test.sh hello world

输出:

script name: test.sh
first arg: hello
second arg: world
total args: 2

十二、特殊变量

常见特殊变量:

变量含义
$?上一个命令的返回值
$$当前进程ID
$!后台进程ID

示例:

ls
echo $?

如果命令成功:

0

十三、完整示例

#!/bin/bash

name="Alice"
age=18

echo "Name: $name"
echo "Age: $age"

sum=$((10+20))
echo "Sum: $sum"

now=$(date)
echo "Time: $now"

运行结果:

Name: Alice
Age: 18
Sum: 30
Time: Tue Mar 11 ...

✅ 总结

Shell 变量常见操作:

定义变量     name=Tom
使用变量     $name
删除变量     unset name
只读变量     readonly name
环境变量     export name
命令替换     $(command)
数学运算     $((a+b))

如果你在学 Linux / DevOps / 运维 / 后端开发,我可以再给你整理一份 Shell 变量 + 条件判断 + 循环 的完整脚本模板(90%脚本都用这个结构),会非常实用。

文章已创建 5021

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

相关文章

开始在上面输入您的搜索词,然后按回车进行搜索。按ESC取消。

返回顶部