如果条件在HTML

时间:2017-05-05 10:49:08

标签: html bash sqlite html-table cgi

我正在创建一个cgi脚本,它读取sql数据库的内容并将其显示在表中。我想为列添加条件,如果其中的文本今天的日期我想要为单元格具有绿色背景颜色。 我希望广告的条件是:

echo '<html><head><meta http-equiv="Content-Type" content="text/html; 
charset=UTF-8">'
echo '<style>body {font-family: courier;}</style></head>'
echo "<body>"
echo "<table border="1">"
echo "<tr><th>lfd.</th><th>ID</th><th>Name/Ort</th><th class="y_n"}>Last Seen</th></tr>"
for line in $(sqlite3 onlinestatus.sqlite "SELECT playerid,name,lastseen,lfd FROM devices WHERE playerid = "1234"
do 
echo "<tr>"
echo "<td align="right">$(echo ${line}|cut -d "|" -f 4)</td>"
echo "<td align="right">$(echo ${line}|cut -d "|" -f 1)</td>"
echo "<td>$(echo ${line}|cut -d "|" -f 2)</td>"
echo "<td>$(echo ${line}|cut -d "|" -f 3)</td>"
echo "</tr>"
done 
echo "</table>"

我想在此行添加条件,因此如果$ {line}是今天的日期,则单元格的背景颜色为绿色或任何其他颜色

echo "<td align="right">$(echo ${line}|cut -d "|" -f 1)</td>"

1 个答案:

答案 0 :(得分:0)

问题是最里面的双引号不会被解释为内部双引号,而是在语法着色显示良好时关闭字符串。

要在双引号字符串中使用双引号,可以对其进行转义

echo "<td align=\"right\">$(echo ${line}|cut -d \"|\" -f 1)</td>"

或者您可以使用单引号

echo '<td align="right">'"$(echo ${line}|cut -d '|' -f 1)"'</td>'

同样切割也没用,下面的变量扩展也是一样的

echo '<td align="right">'"${line%%|*}"'</td>'

除非内部引号位于命令替换$()之间,否则它们可以嵌套。