Hugo博客公告弹窗

非常实用简单的利用chatgpt写脚本技巧

   
文章摘要
摘要小助理今天溜号啦……😜

方法经验

一个优秀的提示词(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差不多厉害,

如果你想要获取什么信息, 你可以这样说: 在以下文章中,我想知道啥啥啥,请提供一个表格,包含两列,问题和答案

重要的是这两句话: 请提供一个表格,包含两列,这里的两列可以根据情况修改

CC BY-NC-SA 4.0 转载请注明
最后更新于 2024-11-20 16:13
clarity统计