AI 快讯 编译自 simon_willison #LLM#shebang#脚本技巧

LLM 脚本 shebang 行用法:用自然语言直接生成 SVG 或执行计算

Simon Willison 展示了如何将 LLM 命令放入脚本 shebang 行,让文本文件直接调用 AI 生成 SVG、执行计算等。本文介绍三种模式:简单 fragment、工具调用、YAML 模板定义 Python 函数。对中文开发者来说,这是一种将大模型嵌入 Linux 工作流的轻量方式。

编译发布 2026/05/24 原文发布 2026/05/11

一句话看懂

Simon Willison 演示了在脚本 shebang 行中使用 LLM 命令,让纯文本文件直接调用 AI 生成内容或执行计算。

详细发生了什么

Hacker News 用户 Kim_Bruning 提出一个有趣想法:可以在英文文本文件的开头加上 shebang 行,使其可执行。Simon Willison 受此启发,用他开发的 LLM 工具(一个命令行 AI 工具)实现了三种模式。

最简单的是使用 -f 参数(fragment 模式),文件内容直接作为 prompt 传给 LLM。例如,一个文件内容为 Generate an SVG of a pelican riding a bicycle,加上 shebang #!/usr/bin/env -S llm -f 后,运行该文件就会输出一个 SVG 图片。

更高级的用法是结合 tool calling。使用 -T 参数可以调用内置工具,比如 llm_time 获取当前时间。还可以用 -t 参数执行 YAML 模板,在模板中定义 Python 函数作为自定义工具。示例中定义了两个函数 addmultiply,然后运行 ./calc.sh 'what is 2344 * 5252 + 134' --td,LLM 会自动调用工具完成计算并输出结果。

中文圈视角

这个技巧对中文开发者非常实用,尤其是那些经常在 Linux 终端工作的人。它提供了一种极低门槛的方式将 LLM 集成到日常脚本中,无需写复杂的 API 调用代码。

不过需要注意的是,LLM 工具本身需要安装 Python 包,且默认调用 OpenAI 的 API(需要 API key)。国内用户可以使用国产替代方案,比如在 LLM 中配置兼容 OpenAI 接口的国产模型(如 DeepSeek、通义千问等),或者使用类似的开源工具如 shell_gpt(sgpt)。

对于中文用户,一个典型场景是:写一个脚本自动生成中文文案、翻译或代码注释。但要注意,如果使用海外模型,数据会出境,涉及合规问题。建议使用国内部署的模型或本地模型(如 Ollama)来避免风险。

几条值得记住的细节

  • 三种模式:-f(fragment 直接 prompt)、-T(调用内置工具)、-t(YAML 模板定义 Python 函数)
  • 自定义工具用 Python 函数定义,支持任意复杂逻辑
  • 使用 --td 参数可以查看工具调用的 debug 信息
  • LLM 工具是开源项目,地址:https://llm.datasette.io
  • 需要 Python 3.8+ 和 OpenAI API key(或兼容接口)

一句话总结

把 LLM 塞进 shebang 行,让每个文本文件都能变成 AI 驱动的可执行脚本。