输出Shell脚本变量为HTML

时间:2014-04-22 17:41:48

标签: html bash variables connect

相当新的编码,寻找一个有一个变量输出到本地html文件的一点帮助。脚本和html都在同一台机器上。脚本从调制解调器中提取信号电平,我希望将其显示到本地html加载屏幕。

信号脚本:

#!/bin/bash

MODEM=/dev/ttyUSB3
MODEMCMD=AT+CSQ

{
  echo -ne "$MODEMCMD"'\r\n' > "$MODEM"

  if [ $? -eq 1 ]
  then
    echo "error";
    exit;
  fi

  {
    while read -t 1
    do
      if [[ $REPLY == +CSQ* ]]
      then
        arr1=$(echo "$REPLY" | cut -d' ' -f2)
        arr2=$(echo "$arr1" | cut -d',' -f1)
        echo "$arr2"
        exit;
      fi
    done
    echo "error";
  } <"$MODEM"
}  2>/dev/null

希望这个输出显示在我的html表格中。谢谢!

1 个答案:

答案 0 :(得分:2)

当您托管自己的Web服务器时,CGI协议允许您使用任何语言进行服务器端编程;包括Bash。

这是一个简单的示例,它提供显示当前日期和时间的网页,并每10秒刷新一次。将下面的Bash脚本放在test.cgi文件夹(在Linux / Apache:cgi-bin)中名为/usr/lib/cgi-bin的文件中,并使其可执行(chmod +x test.cgi)。该网页的网址为:http://MyWebServer/cgi-bin/test.cgi

#!/bin/bash
cat << EOT
content-type: text/html

<!DOCTYPE html>
<html>
<head>
<title>Test</title>
<meta http-equiv="refresh" content="10" />
</head>
<body>
$(date)
</body>
</html>
EOT

请注意:content-type下方的空行与CGI协议相关。

用您自己的Bash脚本替换date;确保它输出类似于有效HTML的内容。这意味着您需要花些精力为标记添加HTML标记,并对内容中的某些字符(< > &)进行HTML编码。