Bash 脚本是一种用于自动化任务、管理系统和运行命令的强大工具。以下是 Bash 脚本的基本语法、结构和常用功能的详细介绍。
Bash 脚本的基本结构
脚本文件的格式
- 文件开头指定解释器:使用
#!/bin/bash
告诉系统脚本应该由 Bash 解释器执行。
BASH
1 |
|
- 保存文件:将文件保存为
.sh
后缀,例如script.sh
。 - 赋予执行权限:
BASH
1 | chmod +x script.sh |
- 运行脚本:
BASH
1 | ./script.sh |
注释
- 单行注释:用
#
开头。
BASH
1 | # 这是一个注释 |
- 多行注释:一般用
<<COMMENT
和COMMENT
。
BASH
1 | : <<'COMMENT' |
变量
定义变量
- 定义变量时,中间不能有空格。
BASH
1 | name="Alice" |
使用变量
- 使用变量时需要加
$
。
BASH
1 | echo "Name: $name" |
读取用户输入
BASH
1 | read -p "Enter your name: " user_name |
环境变量
- 访问系统环境变量,例如:
BASH
1 | echo "Home directory: $HOME" |
条件判断
if-else 语法
BASH
1 | if [ 条件 ]; then |
- 示例:
BASH
1 |
|
循环
for 循环
BASH
1 | for i in 1 2 3 4 5; do |
- 遍历文件:
BASH
1 | for file in *.sh; do |
while 循环
BASH
1 | count=1 |
until 循环
BASH
1 | count=1 |
函数
定义和调用函数
BASH
1 | function greet() { |
- 带返回值的函数:
BASH
1 | function add() { |
文件操作
检查文件或目录
BASH
1 | file="test.txt" |
- 常用的文件测试符:
测试符 描述 -f
是否为普通文件 -d
是否为目录 -e
是否存在 -r
是否可读 -w
是否可写 -x
是否可执行
读取文件内容
BASH
1 | file="test.txt" |
重定向输出
- 输出到文件:
BASH
1 | echo "Hello, World!" > output.txt |
- 追加到文件:
BASH
1 | echo "追加内容" >> output.txt |
运算
整数运算
- 使用
$((表达式))
进行整数运算:
BASH
1 | a=10 |
浮点运算
- 使用
bc
进行小数运算:
BASH
1 | result=$(echo "scale=2; 10 / 3" | bc) |
数组
定义数组
BASH
1 | arr=("apple" "banana" "cherry") |
访问数组元素
BASH
1 | echo ${arr[0]} # 输出第一个元素 |
获取数组长度
BASH
1 | echo ${#arr[@]} |
遍历数组
BASH
1 | for item in "${arr[@]}"; do |
高级功能
参数传递
- 脚本可以通过命令行参数接收输入。
BASH
1 |
|
- 运行脚本:
BASH
1 | ./script.sh arg1 arg2 |
条件表达式
-
数值比较:
运算符 描述 -eq
等于 -ne
不等于 -gt
大于 -lt
小于 -ge
大于等于 -le
小于等于 -
字符串比较:
运算符 描述 =
等于 !=
不等于 -z
字符串是否为空 -n
字符串是否非空
捕获命令执行结果
- 使用反引号 `` 或
$()
捕获命令输出:
BASH
1 | current_date=$(date) |
示例脚本
备份脚本
BASH
1 |
|
检测服务运行状态
BASH
1 |
|
通过掌握这些 Bash 脚本语法和功能,您可以轻松编写脚本来自动化日常任务或实现复杂的系统管理功能!