本文目录导读:

- 📋 终端命令行批量展示(最推荐)
- 🌐 生成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界面 | 用户体验好 |
你需要哪种类型的展示? 告诉我你的具体场景(代码审查、教学演示、个人笔记整理),我可以提供更针对性的脚本!
版权声明:NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
足球直播
足球直播
足球直播
篮球直播
篮球直播
篮球直播
NBA直播
NBA直播
NBA直播
CBA直播
CBA直播
CBA直播
亚冠直播
亚冠直播
亚冠直播
欧冠直播
欧冠直播
欧冠直播
英超直播
英超直播
英超直播
西甲直播
西甲直播
西甲直播
中超直播
中超直播
中超直播
足球直播
足球直播
足球直播
篮球直播
篮球直播
篮球直播
NBA直播
NBA直播
NBA直播
CBA直播
CBA直播
CBA直播
亚冠直播
亚冠直播
亚冠直播
欧冠直播
欧冠直播
欧冠直播
英超直播
英超直播
英超直播
西甲直播
西甲直播
西甲直播
中超直播
中超直播
中超直播
足球直播
足球直播
足球直播
篮球直播
篮球直播
篮球直播
NBA直播
NBA直播
NBA直播
CBA直播
CBA直播
CBA直播
亚冠直播
亚冠直播
亚冠直播
欧冠直播
欧冠直播
欧冠直播
英超直播
英超直播
英超直播
西甲直播
西甲直播
西甲直播
中超直播
中超直播
中超直播
足球直播
足球直播
足球直播
篮球直播
篮球直播
篮球直播
NBA直播
NBA直播
NBA直播
CBA直播
CBA直播
CBA直播
亚冠直播
亚冠直播
亚冠直播
欧冠直播
欧冠直播
欧冠直播
英超直播
英超直播
英超直播
西甲直播
西甲直播
西甲直播
中超直播
中超直播
中超直播
曼联直播
曼联直播
曼联直播
日职联直播
日职联直播
日职联直播
澳超直播
澳超直播
澳超直播
阿森纳直播
阿森纳直播
阿森纳直播
足球直播
足球直播
足球直播
NBA直播
NBA直播
NBA直播
曼联直播
曼联直播
曼联直播
日职联直播
日职联直播
日职联直播
澳超直播
澳超直播
澳超直播
阿森纳直播
阿森纳直播
阿森纳直播
足球直播
足球直播
足球直播
NBA直播
NBA直播
NBA直播
曼联直播
曼联直播
曼联直播
日职联直播
日职联直播
日职联直播
澳超直播
澳超直播
澳超直播
阿森纳直播
阿森纳直播
阿森纳直播
足球直播
足球直播
足球直播
NBA直播
NBA直播
NBA直播
曼联直播
曼联直播
曼联直播
日职联直播
日职联直播
日职联直播
澳超直播
澳超直播
澳超直播
阿森纳直播
阿森纳直播
阿森纳直播
足球直播
足球直播
足球直播
NBA直播
NBA直播
NBA直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
足球直播
足球直播
足球直播
足球直播
足球直播
英超直播
英超直播
英超直播
英超直播
英超直播
篮球直播
篮球直播
篮球直播
篮球直播
篮球直播
CBA直播
CBA直播
CBA直播
CBA直播
CBA直播
中超直播
中超直播
中超直播
中超直播
中超直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
足球直播
足球直播
足球直播
足球直播
足球直播
英超直播
英超直播
英超直播
英超直播
英超直播
篮球直播
篮球直播
篮球直播
篮球直播
篮球直播
CBA直播
CBA直播
CBA直播
CBA直播
CBA直播
中超直播
中超直播
中超直播
中超直播
中超直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播