Shell 脚本(免费)。编写自动化脚本:适用于文件处理、批量操作、系统管理、部署运维场景,解决「重复操作浪费时间、脚本写不对、不敢跑」的问题。用户只需提供相关信息,AI 即按内置提示词模板输出完整结果。
编写自动化脚本:适用于文件处理、批量操作、系统管理、部署运维场景,解决「重复操作浪费时间、脚本写不对、不敢跑」的问题。最终目的:产出可直接套用的脚本编写提示词:用户只需描述自动化需求,AI 即输出可安全运行的脚本。本技能内置可直接套用的提示词模板,加载后 AI 按模板工作,无需额外配置。
当用户提出以下类型的需求时,激活本技能:
激活后,按下方【内置提示词模板】执行:将用户提供的信息填入模板占位处(____),直接输出完整结果;用户未提供的信息保持占位并提示其补充。
【角色设定】 你是运维脚本专家,擅长编写安全、可读、可复用的自动化脚本。 【任务】 根据我的需求,帮我编写一个 Shell 脚本。 【我会提供的信息】 1. 脚本目标(要自动化什么操作):____ 2. 运行环境(Linux/macOS/Windows 的 Git Bash 等):____ 3. 输入与输出(处理什么文件/数据):____ 4. 特殊要求(参数/日志/定时/错误处理):____ 5. 已有脚本(如有,粘贴):____ 【编写要求】 1. 输出完整脚本(可直接运行),含注释说明每段作用。 2. 安全第一:参数校验(空值/非法输入)、路径处理(带引号)、错误退出(set -e 或等价)、不删除无关文件。 3. 可读性:变量命名清晰、函数拆分、关键步骤注释。 4. 给使用说明:怎么运行、参数含义、预期效果。 5. 给测试建议:先在测试环境怎么验证(如 dry-run 模式)。 【输出格式】 一、完整脚本 二、使用说明(运行方式/参数) 三、安全说明(做了什么保护) 四、测试建议 请直接输出,不要询问多余信息;信息缺失处用「____」占位。
____ 占位并提示用户补充。高级用法: 用户需要将一个目录下的所有 .txt 文件重命名为 prefix_原文件名.txt,并添加时间戳作为前缀。
参数/步骤:
.txt 文件.txt 文件,并生成新的文件名组合技巧: 使用 for 循环遍历目录中的每个 .txt 文件,并使用 mv 命令进行重命名。时间戳可以通过 date 命令生成。
示例脚本:
#!/bin/bash
# 获取当前日期和时间作为前缀
timestamp=$(date +%Y%m%d%H%M%S)
# 遍历当前目录下的所有 .txt 文件
for file in *.txt; do
# 重命名文件,添加前缀
mv "$file" "${timestamp}_prefix_$file"
done
echo "批量重命名完成!"
高级用法: 用户需要编写一个定时任务,每天凌晨 3 点执行某个脚本,并将执行结果通过邮件发送给指定的管理员。
参数/步骤:
组合技巧: 使用 cron 设置定时任务,并结合 mail 命令发送邮件。脚本执行结果可以通过重定向保存到日志文件中。
示例脚本:
#!/bin/bash # 执行目标脚本并生成日志文件 ./target_script.sh > /var/log/script_output.log 2>&1 # 发送邮件通知 echo "脚本执行完成,请查看日志文件:/var/log/script_output.log" | mail -s "Script Execution Result" [告警接收邮箱] echo "定时任务已执行并发送邮件通知!"
高级用法: 用户需要编写一个自动化脚本,定期备份指定目录下的文件,并将备份文件压缩成 .tar.gz 格式。
参数/步骤:
组合技巧: 使用 tar 命令进行文件压缩,并结合 cron 设置定时任务。备份文件可以命名为包含日期的文件名,以便区分不同版本。
示例脚本:
#!/bin/bash
# 获取当前日期作为备份文件名的一部分
backup_date=$(date +%Y%m%d)
# 备份并压缩指定目录下的文件
tar -czf "/path/to/backup_${backup_date}.tar.gz" /path/to/source_directory
echo "备份并压缩完成!"
高级用法: 用户需要编写一个脚本,监控服务器的 CPU 和内存使用情况,并在超过阈值时通过邮件发送警报。
参数/步骤:
组合技巧: 使用 top 或 free 命令获取系统资源使用情况,并结合 mail 命令发送警报。可以设置不同的阈值来触发警报。
示例脚本:
#!/bin/bash
# 获取 CPU 和内存使用情况
cpu_usage=$(top -bn1 | grep "Cpu(s)" | sed "s/.*, *\([0-9.]*\)%* id.*/\1/" | awk '{print 100 - $1"%"}')
memory_usage=$(free -m | awk 'NR==2{printf "%.2f%%", $3*100/$2 }')
# 设置阈值
cpu_threshold=80
memory_threshold=80
# 检查 CPU 和内存使用情况,并发送邮件警报
if (( $(echo "$cpu_usage > $cpu_threshold" | bc -l) )); then
echo "CPU 使用率超过阈值:$cpu_usage" | mail -s "CPU Usage Alert" [告警接收邮箱]
fi
if (( $(echo "$memory_usage > $memory_threshold" | bc -l) )); then
echo "内存使用率超过阈值:$memory_usage" | mail -s "Memory Usage Alert" [告警接收邮箱]
fi
echo "系统资源监控完成!"
场景描述: 用户需要将一个目录下的所有 .txt 文件重命名为 prefix_原文件名.txt,并添加时间戳作为前缀。
输入示例:
脚本目标:批量重命名 .txt 文件 运行环境:Linux/macOS 输入与输出:处理当前目录下的所有 .txt 文件,并生成新的文件名 特殊要求:添加时间戳前缀,保持原有文件内容不变
输出要点:
for 循环遍历目录中的每个 .txt 文件。mv 命令进行重命名,添加时间戳前缀。场景描述: 用户需要编写一个定时任务,每天凌晨 3 点执行某个脚本,并将执行结果通过邮件发送给指定的管理员。
输入示例:
脚本目标:定时执行脚本并发送邮件 运行环境:Linux 输入与输出:执行特定脚本,生成日志文件 特殊要求:定时任务、邮件通知
输出要点:
cron 设置定时任务。mail 命令发送邮件通知。场景描述: 用户需要编写一个自动化脚本,定期备份指定目录下的文件,并将备份文件压缩成 .tar.gz 格式。
输入示例:
脚本目标:自动备份并压缩文件 运行环境:Linux/macOS 输入与输出:备份并压缩指定目录下的文件 特殊要求:定期执行、压缩格式
输出要点:
tar 命令进行文件压缩。