ToolkitX
知识库工具箱

Bash 基础

变量、数组、字符串操作

20min·入门

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} 的作用是?

下一节

条件判断

下一节