2011-12-05 220 views
2
#!/bin/bash 

kommando="java -jar '/home/git/yuicompressor-2.4.7/build/yuicompressor-2.4.7.jar'" 
gitdir='/home/git/repositories/gitosis-admin.git/gitosis-export/dev/www/res/' 

echo "Vil Du versionere ? (ja/nej)" 
read yesno 
    if [yesno="ja"] 
then 
    echo "Hvad vil du kalde denne version:" 
read version 
else 
    echo "ok - surethang !" 

while 
    IFS=$'\n' read linje 
do 
    case "$linje" in 
    *.css) 
     $kommando "$gitdir/$linje" --type css >> "$gitdir/`basename \"$linje\" .css`."version".css" ;; 
    *.js ) 
     $kommando "$gitdir/$linje" --type js >> "$gitdir/`basename \"$linje\" .js`."version".js" ;; 
    ?*) 
    esac 
done < manifest.conf 

當我運行腳本它給我和錯誤在第36行(結束)(當我服務清單的while循環)。Bash - 輸入到while循環

回答

3

我看到下面的錯誤在你的代碼:

  • 你不fi
  • 錯過空格if頭圍if聲明
  • 使用$當你想要得到的變量值

因此,而不是

read yesno 
if [yesno="ja"] 
then 
    echo "Hvad vil du kalde denne version:" 
    read version 
else 
    echo "ok - surethang !" 

你應該寫

read yesno 
if [ $yesno = "ja" ] 
then 
    echo "Hvad vil du kalde denne version:" 
    read version 
else 
    echo "ok - surethang !" 
fi 
2

你至少有流浪?*)沒有終止;;。另外,由於太空計劃導致美元緊缺,因此錯失了一美元兌換1美元的代價。改爲嘗試[[ "$yesno" = "ja" ]]

否則對錯誤的描述可能會有幫助。

+0

你能解釋一下遠一點你是什麼意思? – MsjComprendo

+0

你自己寫了代碼嗎?什麼是'?*)'應該是什麼意思?在這種情況下應該做什麼? –