Bash неожиданный знак рядом с «тогда» - PullRequest
0 голосов
/ 02 ноября 2019

У меня синтаксическая ошибка, больше похожая на неожиданный символ рядом с токеном 'then', но я не могу понять это ..

    #!/bin/bash

function Functie(){
LINE=1
while read -r CURRENT_LINE; do
   CONTOR=1
for word in "$CURRENT_LINE"; do
   if[ "$word" == "$2" ];
then
   CONTOR=$CONTOR+1
fi
done
if [ "$CONTOR" -eq "$3" ];
then
   echo "$CURRENT_LINE"
fi
LINE=$LINE+1
done < "./"$1""
}

Functie "File1.txt" "Ana" "2"

1 Ответ

0 голосов
/ 02 ноября 2019

Выполните ваш код через ShellCheck , чтобы поймать несколько синтаксических ошибок.

ShellCheck Output

Исправляя их, вы получите:

#!/bin/bash

function Functie(){
LINE=1
while read -r CURRENT_LINE; do
   CONTOR=1
for word in $CURRENT_LINE; do
   if [ "$word" == "$2" ];
then
   CONTOR=$CONTOR+1
fi
done
if [ "$CONTOR" -eq "$3" ];
then
   echo "$CURRENT_LINE"
fi
LINE=$LINE+1
done < ./"$1"
}

Functie "File1.txt" "Ana" "2"

Одна проблема, которую он не обнаруживает, это плохие задания. Чтобы увеличить переменную, напишите одно из них:

CONTOR=$(($CONTOR+1))
CONTOR=$((CONTOR+1))
((CONTOR += 1))
((++CONTOR))
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...