64 lines
2.3 KiB
Bash
Executable File
64 lines
2.3 KiB
Bash
Executable File
#!/bin/bash
|
||
# ============================================================
|
||
# sgClaw 验证报告 — 局域网 HTTP 服务启动脚本
|
||
#
|
||
# 用法:
|
||
# ./serve.sh # 默认 8080 端口
|
||
# ./serve.sh 9090 # 指定端口
|
||
#
|
||
# 局域网访问:
|
||
# 同网段机器浏览器打开 http://<本机IP>:<端口>/index.html
|
||
# ============================================================
|
||
|
||
set -e
|
||
|
||
PORT="${1:-8080}"
|
||
DIR="$(cd "$(dirname "$0")" && pwd)"
|
||
cd "$DIR"
|
||
|
||
# 获取本机 IP (兼容银河麒麟 / Ubuntu / CentOS)
|
||
get_ip() {
|
||
# 优先取非 127 的第一个 IPv4
|
||
ip -4 addr show 2>/dev/null \
|
||
| grep -oP 'inet \K[\d.]+' \
|
||
| grep -v '127.0.0.1' \
|
||
| head -1
|
||
}
|
||
|
||
LOCAL_IP=$(get_ip)
|
||
if [ -z "$LOCAL_IP" ]; then
|
||
# fallback: hostname
|
||
LOCAL_IP=$(hostname -I 2>/dev/null | awk '{print $1}')
|
||
fi
|
||
if [ -z "$LOCAL_IP" ]; then
|
||
LOCAL_IP="<本机IP>"
|
||
fi
|
||
|
||
echo ""
|
||
echo " ╔══════════════════════════════════════════════════╗"
|
||
echo " ║ sgClaw · AI Agent 验证报告 ║"
|
||
echo " ╠══════════════════════════════════════════════════╣"
|
||
echo " ║ ║"
|
||
echo " ║ 本机访问: http://localhost:${PORT}/index.html"
|
||
echo " ║ 局域网访问: http://${LOCAL_IP}:${PORT}/index.html"
|
||
echo " ║ ║"
|
||
echo " ║ 按 Ctrl+C 停止服务 ║"
|
||
echo " ╚══════════════════════════════════════════════════╝"
|
||
echo ""
|
||
|
||
# 优先使用 Python 3,兼容银河麒麟和各 Linux 发行版
|
||
if command -v python3 &>/dev/null; then
|
||
python3 -m http.server "$PORT" --bind 0.0.0.0
|
||
elif command -v python &>/dev/null; then
|
||
# Python 2 fallback
|
||
python -m SimpleHTTPServer "$PORT"
|
||
else
|
||
echo "[Error] 未找到 Python,请安装 python3 或使用其他 HTTP 服务器"
|
||
echo ""
|
||
echo " 替代方案:"
|
||
echo " 1. sudo apt install python3"
|
||
echo " 2. npx serve -l $PORT (需要 Node.js)"
|
||
echo " 3. busybox httpd -f -p $PORT (银河麒麟可能自带)"
|
||
exit 1
|
||
fi
|