forked from NodeSeekDev/NodeScriptKit
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathexample.v0.0.1.0417.sh
More file actions
executable file
·96 lines (76 loc) · 2.76 KB
/
example.v0.0.1.0417.sh
File metadata and controls
executable file
·96 lines (76 loc) · 2.76 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
#!/bin/bash
### === 脚本描述 === ###
# 名称: [请替换为实际脚本名称,例如 管理本机的端口]
# 功能: [请简要描述脚本功能,例如 "用于查看,封禁,管理本机的端口"]
# 作者: [作者名称] <[作者联系方式或主页,例如 https://www.nodeseek.com/space/29457]>
# 创建日期: [创建日期,例如 2025-04-13]
# 许可证: [例如 MIT, GPL 等,默认 MIT]
### === 版本信息 === ###
SCRIPT_VERSION="0.0.1"
SCRIPT_NAME="[请替换为脚本名称]" #如 管理本机的端口
SCRIPT_AUTHOR="[@作者名称] <作者联系方式或主页,例如 https://www.nodeseek.com/space/29457>"
#e.g
#SCRIPT_AUTHOR="[@Rouxyang] <https://www.nodeseek.com/space/29457>"
echo -e "\033[33m[信息] $SCRIPT_NAME ,版本: $SCRIPT_VERSION\033[0m"
echo -e "\033[33m[作者] $SCRIPT_AUTHOR\033[0m"
### === 权限检查 === ###
[[ $EUID -ne 0 ]] && echo -e "\033[31m[错误] 请以root用户或sudo运行此脚本!\033[0m" && exit 1
### === 依赖检查 === ###
# 检查必要命令是否可用
check_dependencies() {
local deps=("awk" "sed" "grep") # 根据需要修改依赖
for cmd in "${deps[@]}"; do
if ! command -v "$cmd" &>/dev/null; then
danger "缺少必要命令: $cmd"
exit $EXIT_ERROR
fi
done
}
### === 退出状态码 === ###
EXIT_SUCCESS=0
EXIT_ERROR=1
EXIT_INTERRUPT=130 # Ctrl+C 退出码
### === 颜色定义 === ###
RED='\033[0;31m'
GREEN='\033[0;32m'
YELLOW='\033[0;33m'
CYAN='\033[0;36m'
NC='\033[0m' # No Color
### === 彩色输出函数 === ###
success() { printf "${GREEN}%b${NC} ${@:2}\n" "$1"; }
info() { printf "${CYAN}%b${NC} ${@:2}\n" "$1"; }
danger() { printf "\n${RED}[错误] %b${NC}\n" "$@"; }
warn() { printf "${YELLOW}[警告] %b${NC}\n" "$@"; }
### === 日志记录函数 === ###
# 日志文件路径(可选,默认输出到 stdout)
LOG_FILE="/var/log/${SCRIPT_NAME:-$(basename "${0:-unknown.sh}")}.log"
log() {
local level="$1"
local message="$2"
local timestamp
timestamp=$(date '+%Y-%m-%d %H:%M:%S')
echo "[$timestamp] [$level] $message" | tee -a "$LOG_FILE" 2>/dev/null
}
### === 信号捕获 === ###
cleanup() {
log "INFO" "脚本被中断..."
warn "[警告] 脚本已退出!"
exit $EXIT_INTERRUPT
}
trap cleanup SIGINT SIGTERM
### === 主函数 === ###
main() {
# 初始化日志
log "INFO" "脚本 $SCRIPT_NAME (版本: $SCRIPT_VERSION) 开始执行"
# 检查依赖
check_dependencies
# 脚本核心逻辑(请在此添加具体功能)
info "开始执行脚本逻辑..."
info "核心逻辑放在这里执行,建议是采用函数式执行调用"
# 示例逻辑
success "脚本执行完成!"
log "INFO" "脚本执行成功"
exit $EXIT_SUCCESS
}
### === 脚本入口 === ###
main