01. Bash 变量
bash
# 定义变量
NAME="John"
AGE=30
readonly PI=3.14 # 只读变量
# 使用变量
echo "My name is $NAME"
echo "My name is ${NAME}"
# 命令替换
CURRENT_DATE=$(date +%Y-%m-%d)
KERNEL_VERSION=$(uname -r)
# 字符串操作
STR="Hello World"
echo ${#STR} # 长度: 11
echo ${STR:0:5} # 子串: Hello
echo ${STR/World/Linux} # 替换: Hello Linux
# 默认值
echo ${UNSET_VAR:-"default"} # 未设置时使用默认值
echo ${UNSET_VAR:="assigned"} # 未设置时赋值02. 数组
bash
# 定义数组
FRUITS=("apple" "banana" "cherry")
NUMBERS=(1 2 3 4 5)
# 访问元素
echo ${FRUITS[0]} # apple
echo ${FRUITS[@]} # 所有元素
echo ${#FRUITS[@]} # 数组长度: 3
# 添加元素
FRUITS+=("date")
# 遍历数组
for fruit in "${FRUITS[@]}"; do
echo $fruit
done
# 关联数组(Bash 4+)
declare -A colors
colors[red]="#ff0000"
colors[green]="#00ff00"
echo ${colors[red]}03. 字符串操作
bash
STR="Hello, World!"
# 长度
echo ${#STR} # 13
# 子串
echo ${STR:0:5} # Hello
echo ${STR:7} # World!
# 替换
echo ${STR/World/Bash} # Hello, Bash!
# 删除匹配
FILE="archive.tar.gz"
echo ${FILE%.gz} # archive.tar
echo ${FILE%%.*} # archive
echo ${FILE#*.} # tar.gz
echo ${FILE##*.} # gz% 和 # 用于删除匹配,单字符匹配最短,双字符匹配最长。
知识测验
第 1/5 题正确 0
Bash 中 ${#STR} 的作用是?
下一节
下一节 条件判断