Bash脚本编写基础指南

Bash脚本编写基础指南_第1张图片

编写 Bash 脚本是自动化 Linux/macOS 任务的常用方法。以下是编写 Bash 脚本的简明指南:


一、创建脚本文件

  1. 新建文件,扩展名通常为 .sh

touch myscript.sh
  1. 添加执行权限

chmod +x myscript.sh

二、脚本结构

1. Shebang 行(必须)
#!/bin/bash
2. 注释
# 这是单行注释

: '
这是多行注释
可以写多行内容
'
3. 基础示例
#!/bin/bash
echo "Hello World!"

三、核心语法

1. 变量

复制

name="Alice"
echo $name          # 使用变量
readonly PI=3.14    # 只读变量
unset name          # 删除变量
2. 参数传递
# 执行时:./script.sh arg1 arg2
echo $1             # 第一个参数 → arg1
echo $#             # 参数总数
echo $*             # 所有参数
3. 条件判断
if [ $a -gt $b ]; then
    echo "a 大于 b"
elif [ $a -eq $b ]; then
    echo "a 等于 b"
else
    echo "a 小于 b"
fi
4. 循环
# for 循环
for i in {1..5}; do
    echo $i
done

# while 循环
count=1
while [ $count -le 5 ]; do
    echo $count
    ((count++))
done
5. 函数
function greet() {
    echo "Hello, $1!"
}
greet "Bob"  # 调用函数 → Hello, Bob!
6. 文件操作
if [ -f "file.txt" ]; then
    echo "文件存在"
fi

# 读取文件内容
while read line; do
    echo $line
done < file.txt

四、执行脚本

./myscript.sh       # 需要执行权限
bash myscript.sh    # 直接解释执行

五、调试技巧

显示执行命令

bash -x myscript.sh

检查语法错误

bash -n myscript.sh

六、最佳实践

  1. 使用双引号包裹变量:"$var"

  2. 使用 [[ ]] 代替 [ ] 更安全

  3. 重要操作前添加确认提示

  4. 使用 set -euo pipefail 增强错误处理:

#!/bin/bash
set -euo pipefail  # 任何错误立即退出,未定义变量报错,管道错误捕获

完整示例:文件备份脚本

#!/bin/bash
set -euo pipefail

# 配置
BACKUP_DIR="/var/backups"
TARGET_DIR="$HOME/documents"
DATE=$(date +%Y%m%d)

# 创建备份目录
mkdir -p "$BACKUP_DIR"

# 执行备份
tar -czf "$BACKUP_DIR/backup_$DATE.tar.gz" "$TARGET_DIR"

echo "备份完成:$BACKUP_DIR/backup_$DATE.tar.gz"

你可能感兴趣的:(bash,linux)