创建脚本的详细步骤
新建脚本文件
打开终端,使用文本编辑器创建文件(推荐nano
或vim
):
nano hello.sh # 创建名为hello.sh的文件
添加脚本声明(Shebang)
首行必须声明解释器路径,确保系统正确执行,常用声明:bash
或
#!/usr/bin/env bash # 自动查找Bash路径(兼容性更好)
编写脚本内容
在声明下方输入命令,
#!/bin/bash echo "Hello World!" # 打印文本 date # 显示当前时间
保存并退出
- nano:按
Ctrl+O
保存 → 回车确认 →Ctrl+X
退出。 - vim:按
Esc
→ 输入:wq
→ 回车。
赋予执行权限
Linux默认禁止直接运行脚本,需手动添加权限:
chmod +x hello.sh # 使文件可执行
运行脚本
三种执行方式:
./hello.sh # 当前目录执行(需确保在脚本所在文件夹) bash hello.sh # 指定解释器执行(无需权限) sh hello.sh # 使用系统默认Shell执行
脚本示例解析
备份目录的实用脚本 (backup.sh
):
#!/usr/bin/env bash # 描述:将/home/user/docs目录压缩备份 backup_dir="/home/user/docs" output_file="backup_$(date +%Y%m%d).tar.gz" # 按日期生成文件名 tar -czf "$output_file" "$backup_dir" # 创建压缩包 echo "备份完成!文件: $output_file"
- 关键点:
- 开头行是注释,提高可读性。
$(date +%Y%m%d)
动态生成日期字符串。- 变量使用双引号包裹(
"$output_file"
),避免路径空格错误。
调试与错误处理
- 语法检查:
bash -n script.sh # 检查语法错误(不执行)
- 逐行调试:
bash -x script.sh # 打印每条执行的命令
- 常见错误:
Permission denied
→ 未运行chmod +x
。command not found
→ 命令拼写错误或未安装。unexpected end of file
→ 缺少done
、fi
等结束符。
安全与最佳实践
- 权限最小化:
- 避免使用
root
运行脚本:用sudo
仅授权必要命令。 - 设置精细权限:
chmod u+x script.sh
(仅所有者可执行)。
- 避免使用
- 代码规范:
- 变量命名清晰(如
backup_dir
而非bd
)。 - 添加注释说明关键步骤。
- 变量命名清晰(如
- 版本控制:
- 使用
Git
管理脚本,便于追踪变更:git init && git add script.sh && git commit -m "Initial version"
- 使用
- 依赖声明:
- 在脚本开头列出所需工具(如
# Requires: tar, git
)。
- 在脚本开头列出所需工具(如
扩展学习
- 进阶工具:
awk
/sed
:文本处理。cron
:定时任务(通过crontab -e
添加计划)。
- 学习资源:
- Bash官方手册(权威文档)
- 《Linux命令行与Shell脚本编程大全》(人民邮电出版社)
- 实践建议:
从自动化文件整理、日志分析等小任务开始,逐步构建复杂工作流。
引用说明基于GNU Bash 5.0文档及Linux Filesystem Hierarchy Standard,实践环境为Ubuntu 22.04 LTS,理论适用于所有POSIX兼容系统。
原创文章,发布者:酷番叔,转转请注明出处:https://cloud.kd.cn/ask/6086.html