2016-09-21 52 views
0

我有一個使用lighttpd的基本cgi bash腳本。這是工作:條件不適用於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>' 

問題是,如果我嘗試添加某種條件...它不起作用。如果你只改變這個你好世界線:

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

它什麼也沒有顯示。我試圖把它們放在一條線上:

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

同樣的結果。它什麼都沒顯示。

我有一個「技巧」,它可以工作,但對我來說不是一個選擇......長期解釋。它使用的是這樣的:

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

有關可能發生什麼的任何想法?如果有人需要更多的數據,或者lighttpd.conf或者其他任何告訴我的東西。謝謝。

+0

'/ bin/[''存在嗎? – MrTux

+0

是的,它裏面有很多命令... ls,貓,grep,if等等...... – OscarAkaElvis

+1

不,實際的命令是否存在(應該是不相關的;大多數shell都有'['作爲內建函數) – chepner

回答

0

omfg ...我有解決方案...我感覺像一個n00b。我的一位朋友解決了它。

就像在文件中將換行符的行尾從CRLF更改爲LF一樣簡單......這種類型的s ** t就是使用Windoze發生的事情...不要責怪我太多和抱歉對於這篇文章:(無論如何我不會刪除它,也許可能對某人有用