本文目录导读:

- 📋 终端命令行批量展示(最推荐)
- 🌐 生成HTML页面(适合分享或文档)
- 📊 Markdown表格展示(适合GitHub/文档)
- 🖥️ GUI图形界面展示(适合桌面用户)
- 🚀 快速方案:一键生成PDF文档
- 最佳实践建议
当然可以!实用脚本完全能够批量展示,关键取决于你希望展示的形式和场景,以下是几种常见的批量展示方式及对应的脚本思路:
📋 终端命令行批量展示(最推荐)
纯文本列表(适合快速浏览)
#!/bin/bash
# 假设你有多个脚本文件在 ~/scripts/ 目录下
for script in ~/scripts/*.sh; do
echo "════════════════════════════════════"
echo "📜 脚本: $(basename $script)"
echo "────────────────────────────────────"
head -n 20 "$script" # 显示前20行
echo ""
done
带编号的交互式选择
#!/bin/bash
scripts=(~/scripts/*.sh)
PS3="请选择要查看的脚本:"
select script in "${scripts[@]}" "退出"; do
case $script in
"退出") break ;;
*)
echo "════════════════════════"
cat -n "$script"
echo "════════════════════════"
;;
esac
done
🌐 生成HTML页面(适合分享或文档)
#!/usr/bin/env python3
import os
import glob
import html
scripts = glob.glob("~/scripts/*.sh")
html_parts = ["<html><body><h1>实用脚本合集</h1><ol>"]
for script in scripts:
with open(script, 'r') as f:
content = f.read()
html_parts.append(f"""
<li>
<h3>{os.path.basename(script)}</h3>
<pre><code>{html.escape(content[:500])}</code></pre>
<hr>
</li>
""")
html_parts.append("</ol></body></html>")
with open("script_collection.html", "w") as f:
f.write("\n".join(html_parts))
print("✅ 已生成 script_collection.html")
📊 Markdown表格展示(适合GitHub/文档)
#!/usr/bin/env python3
import os, glob
import frontmatter # 如果脚本有YAML头信息
print("| 脚本名称 | 用途 | 行数 | 最后修改 |")
print("|---------|------|-----|---------|")
for script in glob.glob("~/scripts/*.sh"):
name = os.path.basename(script)
lines = sum(1 for _ in open(script))
mtime = os.path.getmtime(script)
desc = "待描述" # 可以从脚本注释中提取
# 尝试从注释提取描述
with open(script) as f:
first_line = f.readline()
if first_line.startswith("#") and len(first_line) > 5:
desc = first_line.strip("# ").strip()
print(f"| {name} | {desc} | {lines} | {mtime} |")
🖥️ GUI图形界面展示(适合桌面用户)
#!/usr/bin/env python3
import tkinter as tk
from tkinter import scrolledtext
import os, glob
class ScriptViewer:
def __init__(self, root):
self.root = root
root.title("脚本批量展示器")
# 左侧列表
self.listbox = tk.Listbox(root, width=30)
self.listbox.pack(side=tk.LEFT, fill=tk.Y)
self.listbox.bind('<<ListboxSelect>>', self.show_script)
# 右侧文本显示区
self.text = scrolledtext.ScrolledText(root, wrap=tk.WORD, width=80)
self.text.pack(side=tk.RIGHT, fill=tk.BOTH, expand=True)
# 加载脚本列表
for script in glob.glob("~/scripts/*.sh"):
self.listbox.insert(tk.END, os.path.basename(script))
self.scripts[os.path.basename(script)] = script
def show_script(self, event):
selection = self.listbox.curselection()
if selection:
name = self.listbox.get(selection[0])
with open(self.scripts[name]) as f:
content = f.read()
self.text.delete(1.0, tk.END)
self.text.insert(tk.END, content)
root = tk.Tk()
app = ScriptViewer(root)
root.mainloop()
🚀 快速方案:一键生成PDF文档
#!/bin/bash
# 使用enscript + ps2pdf生成PDF合集
enscript --header='$n|%W|Page $%' \
--line-numbers \
--highlight \
--color \
-o scripts.ps \
~/scripts/*.sh
ps2pdf scripts.ps scripts_collection.pdf
echo "✅ 已生成 scripts_collection.pdf"
最佳实践建议
| 场景 | 推荐方式 | 理由 |
|---|---|---|
| 快速自用 | 终端列表 | 零依赖,秒出结果 |
| 团队分享 | Markdown/HTML | 整洁可读,支持链接 |
| 正式文档 | PDF生成 | 格式稳定,可打印 |
| 交互演示 | GUI界面 | 用户体验好 |
你需要哪种类型的展示? 告诉我你的具体场景(代码审查、教学演示、个人笔记整理),我可以提供更针对性的脚本!