2017-05-05 5 views
0

Ich mache ein CGI-Skript, liest den Inhalt einer SQL-Datenbank und zeigt sie in einer Tabelle. Ich möchte eine Bedingung für die Spalte setzen, dass, wenn der Text darin das Datum heute ist, ich eine grüne Hintergrundfarbe für die Zelle haben will. Die Linie i Anzeige geschaltet werden soll die Bedingung:Wenn Bedingung innerhalb HTML

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>" 

I dieser Linie die Bedingung hinzufügen möchten also, wenn die $ {line} heutigen Datum ist die Hintergrundfarbe für die Zelle grün oder jede andere Farbe

+0

Also, was ist das Problem? – 123

+0

@ 123 Wie kann ich hinzufügen, wenn Bedingung in die so, wenn der Text in der Zelle ist heute Datum gibt es eine grüne Hintergrundfarbe? – mido

Antwort

0

Das Problem ist, dass die innersten doppelten Anführungszeichen nicht als innere doppelte Anführungszeichen interpretiert werden, sondern die Zeichenfolge schließen, wenn die Syntaxfarbe gut zeigt.

Um doppelte Anführungszeichen in doppelte Anführungszeichen verwenden es

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

Oder Sie können einfache Anführungszeichen

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

Auch ist nutzlos geschnitten verwenden, wird die folgende variable Erweiterung hat die gleiche

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

Außer wenn innere Anführungszeichen zwischen Befehlssubstitution $(), in sind In diesem Fall können sie verschachtelt werden.

Verwandte Themen