2016-09-21 3 views
0

Ich habe eine funktionierende grundlegende CGI Bash Skript mit LightTPD. Das funktioniert:Conditionals funktioniert nicht auf Bash CGI

#!/bin/bash 
echo -e 'Content-type: text/html\n' 
echo '<html>' 
echo '<head>' 
echo '<title>test</title>' 
echo '</head>' 
echo '<body>' 
echo "Hello World" 
echo '</body>' 
echo '</html>' 

Das Problem ist, wenn ich versuche, eine Art von bedingten hinzufügen ... es funktioniert nicht. Wenn Sie nur die Hallo Welt Zeile dafür ändern:

if [ 1 -eq 1 ]; then 
    echo "it worked" 
else 
    echo "anything else" 
fi 

Es zeigt nichts. Ich habe versucht, sie alle in eine Zeile zu setzen:

if [ 1 -eq 1 ]; then echo "it worked"; else echo "anything else"; fi 

Das gleiche Ergebnis. Es zeigt nichts.

Ich habe einen "Trick", der funktioniert, ist aber keine Option für mich ... lange zu erklären. Es verwendet so etwas:

[[ 1 -eq 1 ]] && echo "it worked" 

Eine Idee über was kann passieren? Wenn jemand mehr Daten braucht, oder lighttpd.conf oder was auch immer, sag es mir einfach. Vielen Dank.

+0

Ist '/ bin/[' exist? – MrTux

+0

ja, und es hat eine Menge Befehle innerhalb ... ls, cat, grep, if, etc ... – OscarAkaElvis

+1

Nein, ist der eigentliche Befehl '/ bin/[' vorhanden (was irrelevant sein sollte; die meisten Shells haben '[' als eingebauten) – chepner

Antwort

0

omfg ... Ich habe die Lösung ... Ich fühle mich wie ein n00b. Ein Freund von mir hat es gelöst.

So einfach wie die Zeilenvorschübe des Zeilenendes von CRLF zu LF auf der Datei ändern ... Diese Art von S ** t ist was passiert mit Windoze ... nicht die Schuld mir zu viel und Entschuldigung für diesen Beitrag :(sowieso werde ich es nicht löschen, könnte vielleicht für jemanden nützlich sein.