строка 43: синтаксическая ошибка: неожиданный конец файла - PullRequest
0 голосов
/ 10 октября 2011

Я получаю синтаксическую ошибку в строке 43 при компиляции кода сценария Unix. Этот код предназначен для поиска в папке текстового файла и сопоставления с любым словом из input.txt. код еще не закончен, хотя

#!/bin/bash

findkeyword () {
    file="$1"   
    keyword="$2"    
    value="$3"
    int count = 0
    cat $file | awk '{
    while read line
        do
            for (ii=1;ii<=NF;ii++) {
                if ($ii == $keyword)
                    count++
            fi
            }
        done
    }'
    echo "Profile: " $file
    scorefile $value $count

scorefile () {
    value="$1"
    count="$2"

    echo "Score: " $value*$count

}

cat input.txt | awk '{
    while read line
        do
            keyword=$1
            value=$2

            for xx in `ls submissions/*`
            do
                filename=$xx
                findkeyword $filename $keyword $value
            done
        done
}'

1 Ответ

0 голосов
/ 10 октября 2011
#!/bin/bash

findkeyword () {
  file="$1"   
  keyword="$2"    
  value="$3"
  int count = 0
  while read line; do
    for word in $line; do
        if [[ $word =  $keyword ]]; then
            $((count++))
        fi
    done
    done <$file
  echo "Profile: " $file
  scorefile $value $count
} # missing closing brace here

scorefile () {
  value="$1"
  count="$2"

  echo "Score: " $(($value*$count)) # Math evaluation broken

}

while read line
    do
        keyword=$1
        value=$2

        for xx in `ls submissions/*`
        do
            filename=$xx
            findkeyword $filename $keyword $value
        done
    done<input.txt
...