- Unix/Linux 初学者指南
- Unix/Linux - 首页
- Unix/Linux - 什么是 Linux?
- Unix/Linux - 入门
- Unix/Linux - 文件管理
- Unix/Linux - 目录
- Unix/Linux - 文件权限
- Unix/Linux - 环境
- Unix/Linux - 基本实用程序
- Unix/Linux - 管道和过滤器
- Unix/Linux - 进程
- Unix/Linux - 通信
- Unix/Linux - vi 编辑器
- Unix/Linux Shell 编程
- Unix/Linux - Shell 脚本
- Unix/Linux - 什么是 Shell?
- Unix/Linux - 使用变量
- Unix/Linux - 特殊变量
- Unix/Linux - 使用数组
- Unix/Linux - 基本运算符
- Unix/Linux - 决策
- Unix/Linux - Shell 循环
- Unix/Linux - 循环控制
- Unix/Linux - Shell 替换
- Unix/Linux - 引号机制
- Unix/Linux - I/O 重定向
- Unix/Linux - Shell 函数
- Unix/Linux - 手册页帮助
- 高级 Unix/Linux
- Unix/Linux - 标准 I/O 流
- Unix/Linux - 文件链接
- Unix/Linux - 正则表达式
- Unix/Linux - 文件系统基础
- Unix/Linux - 用户管理
- Unix/Linux - 系统性能
- Unix/Linux - 系统日志
- Unix/Linux - 信号和陷阱
Unix/Linux - 使用 Shell 变量
在本章中,我们将学习如何在 Unix 中使用 Shell 变量。变量是一个字符字符串,我们为其分配一个值。分配的值可以是数字、文本、文件名、设备或任何其他类型的数据。
变量只不过是指向实际数据的指针。Shell 使您能够创建、分配和删除变量。
变量名称
变量名只能包含字母(a 到 z 或 A 到 Z)、数字(0 到 9)或下划线字符(_)。
按照惯例,Unix Shell 变量的名称将使用大写字母。
以下示例是有效的变量名:
_ALI TOKEN_A VAR_1 VAR_2
以下是无效变量名的示例:
2_VAR -VARIABLE VAR1-VAR2 VAR_A!
您不能使用其他字符(例如!、*或-)的原因是这些字符对 Shell 具有特殊含义。
定义变量
变量定义如下:
variable_name=variable_value
例如:
NAME="Zara Ali"
上面的示例定义了变量 NAME 并为其分配了值“Zara Ali”。此类型的变量称为标量变量。标量变量一次只能保存一个值。
Shell 使您能够在变量中存储任何想要的值。例如:
VAR1="Zara Ali" VAR2=100
访问值
要访问存储在变量中的值,请在其名称前加上美元符号($):
例如,以下脚本将访问已定义变量 NAME 的值并在 STDOUT 上打印它:
#!/bin/sh NAME="Zara Ali" echo $NAME
上述脚本将生成以下值:
Zara Ali
只读变量
Shell 提供了一种方法,可以使用 read-only 命令将变量标记为只读。在变量被标记为只读后,其值将无法更改。
例如,以下脚本在尝试更改 NAME 的值时会生成错误:
#!/bin/sh NAME="Zara Ali" readonly NAME NAME="Qadiri"
上述脚本将生成以下结果:
/bin/sh: NAME: This variable is read only.
取消设置变量
取消设置或删除变量指示 Shell 从其跟踪的变量列表中删除该变量。一旦取消设置变量,您将无法访问变量中存储的值。
以下是使用unset命令取消设置已定义变量的语法:
unset variable_name
上述命令取消设置已定义变量的值。这是一个简单的示例,演示了该命令的工作原理:
#!/bin/sh NAME="Zara Ali" unset NAME echo $NAME
上面的示例不打印任何内容。您不能使用 unset 命令来取消设置标记为readonly的变量。
变量类型
当 Shell 运行时,存在三种主要类型的变量:
局部变量 - 局部变量是在 Shell 的当前实例中存在的变量。它对 Shell 启动的程序不可用。它们在命令提示符处设置。
环境变量 - 环境变量可用于 Shell 的任何子进程。某些程序需要环境变量才能正常运行。通常,Shell 脚本仅定义其运行的程序所需的那些环境变量。
Shell 变量 - Shell 变量是 Shell 设置的特殊变量,Shell 为了正常运行而需要它。其中一些变量是环境变量,而另一些是局部变量。