在Shell脚本或命令行中,变量用于存储数据,可以是字符串、数字或其他类型。Shell变量的使用非常灵活,以下是一些基本的操作和示例:
1. 定义变量
在Shell中定义变量不需要使用关键字,直接赋值即可:
VAR_NAME="value"
注意:等号两边不能有空格。
2. 使用变量
使用变量时需要在变量名前加美元符号$:
echo $VAR_NAME
或者使用花括号{}来避免歧义:
echo ${VAR_NAME}
3. 示例
#!/bin/bash
# 定义变量
name="Alice"
age=30
# 使用变量
echo "Name: $name"
echo "Age: $age"
4. 只读变量
使用readonly命令可以将变量变为只读,之后无法修改或删除:
readonly VAR_NAME="readonly_value"
5. 特殊变量
Shell中有一些特殊变量,它们有特定的用途:
$0:当前脚本的文件名$1至$9:传递给脚本或函数的参数$#:传递给脚本或函数的参数个数$@:传递给脚本或函数的所有参数列表$*:传递给脚本或函数的所有参数作为单个字符串$$:当前Shell进程ID$?:上一个命令的退出状态
6. 环境变量
环境变量是全局变量,可以在子进程中访问。常见的环境变量有:
PATHHOMEUSER
定义环境变量:
export VAR_NAME="value"
7. 数值运算
Shell中可以使用expr、let、$((...))等方式进行数值运算:
num1=10
num2=20
# 使用expr
sum=$(expr $num1 + $num2)
echo "Sum: $sum"
# 使用$((...))
sum=$((num1 + num2))
echo "Sum: $sum"
8. 字符串操作
- 字符串长度:
str="Hello, World!"
echo ${#str}
- 子字符串:
substr=${str:7:5}
echo $substr # 输出 "World"
9. 数组
Shell支持一维数组:
# 定义数组
array=("value1" "value2" "value3")
# 访问数组元素
echo ${array[0]} # 输出 "value1"
echo ${array[1]} # 输出 "value2"
# 遍历数组
for value in "${array[@]}"; do
echo $value
done
10. 删除变量
使用unset命令删除变量:
unset VAR_NAME
11. 条件变量替换
${VAR:-default}:如果VAR没有设置或为空,使用default。${VAR:=default}:如果VAR没有设置或为空,设置VAR为default并使用它。${VAR:?message}:如果VAR没有设置或为空,打印message并退出脚本。
VAR=""
echo ${VAR:-"Default Value"} # 输出 "Default Value"
unset VAR
echo ${VAR:="Default Value"} # 输出 "Default Value",并且VAR被设置为"Default Value"
unset VAR
echo ${VAR:?"Variable is not set"} # 打印 "Variable is not set" 并退出脚本
这些是Shell变量的一些基本用法和示例,希望对你有帮助!
652

被折叠的 条评论
为什么被折叠?



