2011-12-05 3 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

난 당신의 코드에서 오류를 다음을 참조 :

  • 당신이 if 헤더에 fi
  • 놓친 공백으로 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

최소 ?*)의 종단 코드 ;;이 있습니다. 또한, [yesno="ja"] comaprison은 잘못되었습니다, 당신은 1 달러를 잃었고, 우주 프로그램에서 벌어지는 달러 부족으로 말입니다. 대신 [[ "$yesno" = "ja" ]]을 시도하십시오.

그렇지 않으면 오류에 대한 설명이 도움이 될 수 있습니다.

+0

당신이 조금 더 당신이 무슨 뜻인지 설명해 주실 작성해야? – MsjComprendo

+0

코드를 직접 작성 했습니까? '? *)'는 무엇을 의미합니까? 이 경우 어떻게해야할까요? –