我正在创建一个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>"
答案 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>'
除非内部引号位于命令替换$()之间,否则它们可以嵌套。