IGD3000系列(一体屏)网关的app和文件系统的打包目录
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
#!/bin/sh
#执行URL的参数命令
#例:http://192.168.1.123/cgi-bin/do/do?sqlite3 /work/iot_cfg.db "select * from alarm"
export PATH=/sbin:/usr/sbin:$PATH
echo -en "Content-type: text/html; charset=utf-8\n\n"
#*****************************************************
source ../bin/env.sh
db="../bin/db"
jsoner="../bin/jsoner"
 
# 1. 获取参数逻辑
if [ "$REQUEST_METHOD" = "GET" ]; then
    # 从URL获取参数(格式:?key=value)
    params="$QUERY_STRING"  # 内置环境变量[5,7](@ref)
elif [ "$REQUEST_METHOD" = "POST" ]; then
    # 从标准输入读取POST数据
    read -t 5 params  # 5秒超时防止阻塞[6](@ref)
else
    echo "error: Unsupported method"
    exit 1
fi
 
# 2. 参数验证与输出
if [ -z "$params" ]; then
    echo "error: No parameters received"
else
    # 简易解码处理(空格和特殊字符)
    decoded_params=$(echo "$params" | sed -e 's/%20/ /g' -e 's/%22/"/g' -e 's/%2F/\//g' -e 's/+/ /g')
    # 命令字符串写入文件
    echo "$decoded_params" > /tmp/.cmd
fi
 
#3. 执行命令
data=`sh /tmp/.cmd`
 
if [ $? -eq 0 ]
then
    echo  "{\"code\":\"success\",\"result\":\"$data\"}"
else
    echo "{\"code\":\"error\",\"result\":\"$data\"}"
fi