在 Linux Shell 脚本中,变量赋值是基础且常见的操作。Shell 脚本变量可以是局部变量(local)或全局变量(export),并且支持多种赋值方式,如 =、<<、=、read 等。
✅ 一、基本变量赋值方式
1. 使用 = 进行赋值
var="Hello, World!"
2. 使用 << 进行赋值(适用于字符串)
var="This is a long string with spaces and special characters."
3. 使用 read 从用户输入中获取值
read -p "Enter a value: " var
4. 使用 export 定义全局变量
export MY_VAR="My global variable"
✅ 二、变量类型与作用域
| 变量类型 | 作用域 | 说明 |
|---|---|---|
local |
局部变量 | 只在函数或块内有效 |
export |
全局变量 | 可在子 shell 中访问 |
local |
局部变量 | 只在函数或块内有效 |
global |
全局变量 | 可在子 shell 中访问 |
✅ 三、变量赋值的常见场景
1. 从文件读取内容
var=$(cat file.txt)
2. 从命令输出中获取值
var=$(echo "Hello" | grep -oE "Hello")
3. 从用户输入中获取值
read -p "Enter a name: " name
4. 使用 readonly 限制变量值
readonly MY_VAR="This is a constant"
✅ 四、变量赋值的注意事项
- 变量名:不能以数字开头,不能包含空格。
- 大小写敏感:在 Shell 中变量名是大小写敏感的。
- 默认值:未赋值的变量默认为空字符串。
- 引号:使用引号(
" ")可以避免变量展开。
✅ 五、示例脚本
#!/bin/bash
# 基本赋值
name="John"
age=30
# 从文件读取内容
content=$(cat data.txt)
# 从用户输入获取值
read -p "Enter a message: " message
# 全局变量
export GREETING="Hello, $name"
# 输出结果
echo "Name: $name"
echo "Age: $age"
echo "Content: $content"
echo "Message: $message"
echo "Greeting: $GREETING"
✅ 六、其他常见命令
echo:打印变量内容printf:格式化输出readonly:限制变量值set:查看变量信息
✅ 七、总结
| 命令 | 用途 |
|---|---|
= |
基本赋值 |
read |
从用户输入获取值 |
export |
定义全局变量 |
readonly |
限制变量值 |
$(command) |
从命令输出中获取值 |
如果你有具体的使用场景(如文件处理、数据统计、自动化脚本等),我可以为你提供更针对性的 Shell 脚本示例。欢迎继续提问!
