Bash 脚本是 Linux/Unix 自动化任务的核心工具,语法围绕变量、流程控制、文件操作展开。
脚本结构
1
2
3
4
5
6
| #!/bin/bash
# 注释
# 执行方式
chmod +x script.sh
./script.sh
|
变量
1
2
3
4
5
6
7
8
9
10
11
12
13
| name="Bash" # 定义(等号无空格)
echo $name # 使用
echo ${name}test # {} 明确边界
# 命令替换
dir=$(pwd)
# 脚本参数
$0 # 脚本名
$1 # 第一个参数
$# # 参数个数
$@ # 所有参数
$? # 上条命令状态
|
输入输出
1
2
3
| echo "Hello"
read -p "输入姓名:" name
printf "姓名:%s\n" "Alice"
|
条件判断
1
2
3
4
5
6
7
| if [ $a -eq $b ]; then # 数值相等
echo "equal"
elif [ -f $file ]; then # 文件存在
echo "file exists"
else
echo "other"
fi
|
| 操作符 | 含义 |
|---|
-eq -ne -gt -lt | 数值比较 |
== != | 字符串比较 |
-f -d -x -e | 文件判断 |
循环
1
2
3
4
5
6
7
8
9
10
| # for 循环
for i in {1..5}; do
echo $i
done
# while 循环
while [ $i -le 5 ]; do
echo $i
i=$((i+1))
done
|
函数
1
2
3
4
| add() {
echo $(($1 + $2))
}
result=$(add 3 5)
|
文件操作
1
2
3
4
5
6
7
| touch file.txt # 创建
mkdir -p dir/sub # 创建目录
cp -r src dst # 复制
mv old new # 移动/重命名
rm -rf dir # 删除
cat file # 读取
grep "key" file # 搜索
|
重定向
1
2
3
| cmd > file # 覆盖
cmd >> file # 追加
cmd < file # 读取
|
调试
1
2
| bash -x script.sh # 打印每步执行
echo $? # 查看状态码
|
Comments