用途:state-directory-manager 面向 bash 脚本,帮助脚本在多次运行之间持久化数据,并统一管理状态目录。适用于存储用户偏好或配置、缓存结果以提升性能、管理带轮转的日志文件,以及构建可移植的 CLI 工具。资料提示,对于无需状态的一次性脚本、应保持纯无状态的脚本,或环境变量已足够的情况,不应使用本技能。
主要能力:按 XDG 兼容路径组织目录,模块中定义了应用名(STATE_APP_NAME)、状态基础目录(STATE_BASE_DIR)、配置目录(STATE_CONFIG_DIR)、数据目录(STATE_DATA_DIR)、缓存目录(STATE_CACHE_DIR)、日志目录(STATE_LOG_DIR)、临时目录(STATE_TMP_DIR),以及配置、状态、日志文件路径。支持配置读写、状态读写、日志记录和缓存读写。
使用方式:在脚本中先设置应用名,再通过 source 引入 state-manager.sh,随后调用相应函数。资料给出的用法示例如下:
#!/bin/bash
STATE_APP_NAME="my-tool"
source /path/to/state-manager.sh
state_config_set "api_key" "abc123"
api_key=$(state_config_get "api_key")
state_set "last_run" "$(date -Iseconds)"
state_log "INFO" "Script started"
if ! result=$(state_cache_get "api_response"); then
result=$(curl -s https://api.example.com/data)
state_cache_set "api_response" "$result"
fi
相关子技能包括 XDG Base Directory 标准、状态文件操作、缓存管理及最佳实践。资源参考 XDG Base Directory Spec 与 File Hierarchy Standard。版本历史显示 1.0.0(2026-01-14)为初始版本,从 workspace-hub 模式中提取。
限制:资料未提供安装命令、依赖要求、平台支持范围、性能表现、收费或价格信息,也未提供完整的清理与日志轮转实现细节,仍需参考对应子技能或源码。