重击“ then”附近的意外令牌

时间:2019-11-02 11:08:53

标签: bash

我遇到语法错误,更像是令牌'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 :(得分:0)

通过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))