这是经过我反复测试,写了不下几十个脚本的技巧.话不多说,方法如下
一个优秀的提示词(prompt) + 一个简洁的脚本框架 + chatgpt
编写脚本是一门艺术,您的经验总结对其他人来说很有价值。
在使用 AI 编写脚本的过程中,我经历了从痛苦到愉悦的转变。最初,我只使用 GPT3.5,不断复制粘贴,并试图通过提供终端输出来测试脚本。但 GPT 总是给我不完美的回答,修改脚本时总会遇到新的问题,这让我非常困恼。直到我发现了更好的方法——创建一个大型脚本框架。
我的方法是这样的:首先,我会准备一个大的脚本框架,然后根据需求往里面添加功能。这样做的好处是,即使新添加的功能有 bug 或不满意,也不会影响整个脚本的运行,我只需要专注于修改那个功能即可。另外,我还学到了提示词的重要性。使用合适的提示词可以引导 AI,防止它答非所问或不知所云。通过不断测试,我发现 AI 的逻辑推理能力是衡量其水平的关键,而像 CommandR+ 和 Llama3-70b 这样的模型在这方面表现出色,值得推荐。
以下是我创建脚本的流程:
- 先提供提示词,等待 AI 索要脚本框架。
- 发送脚本框架给AI,AI说他明白了脚本的结构,问我想实现什么功能
- 写出我的具体需求发送给AI
以下提示词是经过我反复测试得出来的,非常好用,至于我给的脚本,哪怕是小白,不会代码,多看看修改几下就知道怎么用了.
提示词
## 阅读以下所有说明 你是一个专家级程序员,擅长编写Python和Shell脚本,在编程语言方面具有专业知识。我希望你成为我的脚本创作者。我会提供一份原始脚本框架给您,您的目标是帮助我设计出最符合我需求的脚本,你必须遵循以下规则: - 您的第一个反应是要求我提供原始脚本框架 - 我会发送我的脚本框架给你,你阅读后对我说:我已经了解脚本的整体结构,请问你想实现什么功能 - 你必须等待我回答了我的想法之后,才去生成代码 - 请勿改动脚本框架的整体结构,仅允许在现有框架基础上进行函数的添加和修改。 - 必须提供3个部分的完整代码,包括列出`menu_items`选项,列出添加的新功能函数,列出函数的case选项,他们单独展示 - 你生成的内容必须遵循以下格式: 新增函数名称 更新菜单选项数组 menu_items 添加相应的 case 选项 新增函数 修改说明 - 若回答中包含代码,请使用Markdown代码块格式,并在代码块中注明所使用的编程语言。 - 若代码过长,可以省略中间函数的具体实现细节,但必须保持框架结构的完整性,以便清晰展示整个脚本的逻辑流程。 - 请在每个功能函数的结尾处包含以下内容: read -n 1 -s -p "按任意键继续...":提示用户按任意键继续,以提供交互性。 return_to_main_menu:确保用户操作完成后能够返回到主菜单。 - 请记得用中文跟我说话! please remember to talk to me in Chinese! 脚本框架
这是一份shell脚本,你可以测试一下
#!/bin/bash # 定义颜色代码 huang='\033[33m' bai='\033[0m' lv='\033[0;32m' lan='\033[0;34m' hong='\033[31m' kjlan='\033[96m' hui='\e[37m' # 清屏并显示欢迎信息 echo "" clear echo -e "${kjlan}欢迎使用脚本管理工具!${bai}" echo "" # 显示博客和CSDN主页 echo -e "${lv}🔗 博客地址: ${kjlan}https://blog.qige.cloudns.biz${bai} ✨" echo -e "${lv}🔗 CSDN主页: ${kjlan}https://blog.csdn.net/u010066597${bai} ✨" echo "" # 显示分隔线 echo -e "${kjlan}============================================================${bai}" # 定义菜单选项数组 menu_items=( "打印日期" "询问我的名字" "显示系统信息" # 新增的菜单选项 "退出" ) # 显示菜单函数 display_menu() { echo "" echo "请选择一个选项:" echo "------------------------" i=1 for item in "${menu_items[@]}"; do if [ $i -eq ${#menu_items[@]} ]; then # 检查是否为最后一个选项 echo -e "${kjlan}0) ${item} ▶${bai}" # 如果是最后一个选项,序号设为0 else echo -e "$i) $item" # 添加样式以确保样式生效 fi ((i++)) done } # 打印日期函数 print_date() { date "+%Y-%m-%d %H:%M:%S" read -n 1 -s -p "按任意键继续..." return_to_main_menu } # 回答名字函数 answer_name() { echo "阿弥陀佛" read -n 1 -s -p "按任意键继续..." return_to_main_menu } # 显示系统信息函数 show_system_info() { echo -e "系统信息:" echo -e "-----------------" echo -e "操作系统:${kjlan}$(uname -s)${bai}" echo -e "主机名:${kjlan}$(hostname)${bai}" echo -e "当前用户:${kjlan}$(whoami)${bai}" read -n 1 -s -p "按任意键继续..." return_to_main_menu } # 返回主菜单函数 return_to_main_menu() { clear } # 退出程序函数 exit_program() { clear echo -e "${lv}已退出...${bai}" exit 0 } # 主函数 main() { while true; do # 显示菜单 display_menu # 显示分隔线 echo "------------------------" # 获取用户选择 read -p "请输入序号回车:" choice # 函数选项数组 case $choice in 1) print_date ;; 2) answer_name ;; # 新增选项 3) show_system_info ;; # 新增的case选项 0) exit_program ;; *) echo "无效的选择。请再次尝试。" ;; esac done } # 调用主函数 main "$@" 实用小技巧
开头加个: 必须 比如: 你必须怎么样… 能让gpt3和gpt4差不多厉害,
如果你想要获取什么信息, 你可以这样说: 在以下文章中,我想知道啥啥啥,请提供一个表格,包含两列,问题和答案
重要的是这两句话: 请提供一个表格,包含两列,这里的两列可以根据情况修改