2016-09-21 10 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 

それは何も表示されません。私はそれらをすべて1行に入れようとしました:

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、 cat、grep、ifなど... – OscarAkaElvis

+1

実際のコマンド '/ bin/['は存在しません(ほとんどのシェルは '['を内蔵しています) – chepner

答えて

0

omfg ...私は解決策を持っています...私はn00bのように感じます。私の友人がそれを解決しました。

ファイルの行末の改行をCRLFからLFに変更するだけで簡単です...この種のsは、Windozeを使用して起こることです...あまりにも多くのことを非難しません。

関連する問題