实用脚本能批量展示吗?

wen 实用脚本 8

本文目录导读:

实用脚本能批量展示吗?

  1. 📋 终端命令行批量展示(最推荐)
  2. 🌐 生成HTML页面(适合分享或文档)
  3. 📊 Markdown表格展示(适合GitHub/文档)
  4. 🖥️ GUI图形界面展示(适合桌面用户)
  5. 🚀 快速方案:一键生成PDF文档
  6. 最佳实践建议

当然可以!实用脚本完全能够批量展示,关键取决于你希望展示的形式场景,以下是几种常见的批量展示方式及对应的脚本思路:

📋 终端命令行批量展示(最推荐)

纯文本列表(适合快速浏览)

#!/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界面 用户体验好

你需要哪种类型的展示? 告诉我你的具体场景(代码审查、教学演示、个人笔记整理),我可以提供更针对性的脚本!

抱歉,评论功能暂时关闭!